题目描述
请你实现一个简单的字符串替换函数。原串中需要替换的占位符为”%s”,请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。
给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。
测试样例
“A%sC%sE”,7,[‘B’,’D’,’F’],3
返回:”ABCDEF”
思路分析:*%s是一个字符串*
定义空字符串,若字符串A的某位不是占位符,则将该字符存入新字符串;若是占位符则将参数字符存入新字符串。
变量j来记录占位符的个数,从字符串A开头开始遍历,判断该字符和下一个字符分别是否等于%和s,若等于则j++,同时控制循环的变量i++,因为是占位符要多跳过一个字符。
错误所在:由于要访问到A.charAt(i+1),因此要考虑i的范围是i小于n-1,这样就需对最后一个字符进行单独判断,若不等于s则存入新字符串中。
public class StringFormat {
public String formatString(String A, i