【发布时间】:2023-03-15 06:06:01
【问题描述】:
我有一个代码可以“删除”一个句子中连续出现多次的所有字符。例如:
“Thiiis iiis aaa 测试”
我使用charAt() 和length() 方法(这是大学的任务,我只能使用这两种方法)。
在某种程度上它运作良好,但我的问题是:
为什么我在句子末尾看到数字?谁能告诉我我的代码是否错误或哪里错误?
这是一个测试19212325272
这是我用于此的代码:
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;。当您看到相同的两个相邻字符时,您会尝试做什么? -
第一个字符之后的字符应该被删除,直到到达下一个字符。
-
测试中有2个t是有问题
-
你需要删除字符而不是添加它。