1 回答
![?](http://img1.sycdn.imooc.com/54584cb50001e5b302200220-100-100.jpg)
TA贡献1851条经验 获得超5个赞
逻辑的主要问题是,在将字符串附加到字符串之后,buff您可以继续进行该迭代,而不是跳转到字符串中的下一个字符。
将您的方法更改为如下:
public static StringBuffer createEncodedSentence(String sentence) {
StringBuffer buff = new StringBuffer();
int counter = 0;
char a;
for (int i = 0; i < sentence.length(); i++) {
a = sentence.charAt(i);
if (a == '.') {
buff.append("*");
continue;
}
if ((i + 1) % 3 == 0 && a != ' ' && a != '.') {
counter++;
continue;
}
buff.append(sentence.charAt(i));
}
buff.append(counter);
return buff;
}
逻辑:
如果字符是a,
.
则我们附加a*
并跳转到句子中的下一个字符。如果它是第三个索引,则我们增加计数器并跳到下一个字符。
在for循环迭代的最后,我们添加已替换的字符数
添加回答
举报