在学校,我们正在查看从字符串中删除字符的代码。
我在解释此代码中的for循环时遇到问题。
如果word.charAt(i)
等于c,会发生什么?如果word.charAt(i)
不等于c,则打印出该字符。 (words.charAt(i)
打印出来)
但如果它等于c,代码中的哪个部分会被删除?
提前感谢您的帮助。我很抱歉我的英语不好。 这是我们老师给我们的代码:
String removeChar(String word, char c) {
String result = "";
for (int i = 0; i<word.length();i++) {
if (word.charAt(i) !=c) {
result += word.charAt(i);
}
}
return result;
}
答案 0 :(得分:3)
您可以阅读以下代码:
result
。 word
的每封信,请检查它是否不是'c'字符。 仅当它不是'c'时,将此字母附加到result
字符串(在result
字符串的末尾添加此字母)。如果当前检查的字符等于为“c”,请执行 。word
的末尾时,返回result
字符串。顺便说一下,使用String
运算符在循环中追加+=
并不像使用类StringBuilder
及其append()
方法那样高效。
答案 1 :(得分:2)
char并没有被删除; 它根本不会追加(结果+ = word.charAt(i))到字符串结果中。 通过这种方式,方法返回的字符串仅由与char c不同的字符组成。
答案 2 :(得分:0)
此代码只创建新的String对象(请参阅变量 result )。在函数结束时,这个新字符串只包含不等于 c 的字符。接下来,字符串返回作为函数的结果。
Java字符串不可变,因此这只是“修改”字符串的方法 - 创建全新的字符串。
答案 3 :(得分:-1)
实际上没有删除字符,它刚被附加到上面声明的空新字符串(String result =&#34;&#34;;),当字不包含字符&#39时; c&#39;,然后这些字符被附加到结果中,最后你正在检索&#39;结果&#39;字符串不是&#39; Word&#39;,它仍然包含您发送的相同值。