【发布时间】:2019-01-05 12:30:28
【问题描述】:
我被要求编写一个使用特定规则对给定句子进行编码的类。这个类应该使用循环和Stringbuffer。规则是:
- 每个点 '.'将替换为“*”。
- 每第三个字符(如果该字符不是空格或点) 应该被淘汰。
- 在新句子的末尾添加一个代表总数的数字 被淘汰的角色。
我已经编写了代码,但我无法理解为什么它不起作用。有人可以帮忙吗?
例如:
sentence = "Katie 喜欢观察自然。"
应该转化为:
"Kaie iks t obere ntue*8"
但是,使用我的代码,我得到: “凯蒂喜欢观察自然*。”
谢谢!
public void createEncodedSentence() {
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('*');
}
if (a != ' ' && a != '.') {
counter++;
}
if (counter % 3 == 0) {
buff.append("");
}
buff.append(sentence.charAt(i));
}
encodedSentence = buff.toString();
}
【问题讨论】:
-
此外,“它不工作”是一个无用的描述。请详细描述问题。
-
Katie likes to observe nature.的输出应该是Kaie lies to obere atre*6
标签: java stringbuffer