我有一个代码可以“删除”句子中连续出现多次的所有字符。例如:
“ Thiiis iiis aaa tesst”
我使用charAt()
和length()
方法(这是大学的任务,只允许使用这两种方法)。
在某种程度上,它可以正常工作,但我的问题是:
为什么我在句子结尾看到数字?谁能告诉我我的代码是否错误?
这是一个测试
这是我用于此的代码:
public static String reduce(String w) {
String result = "";
for (int i = 0; i < w.length() - 1; i++) {
if(w.charAt(i) == w.charAt(i + 1)) {
w += w.length() - 1;
}
else {
result += w.charAt(i);
}
}
return result;
}
谢谢!
最佳答案
这是因为w += w.length() - 1
。您不需要。
修改后的代码:-
public static String reduce(String w) {
if (w == null) return null; // in case if w is NULL
String result = "";
result += w.charAt(0);
for (int i = 1; i < w.length(); i++) {
if (w.charAt(i - 1) != w.charAt(i)) {
result += w.charAt(i);
}
}
return result;
}
输出:-
Thiiis iiis aaa tesst
This is a test
关于java - 字符串迭代,末尾有数字(初学者),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51270349/