while (sentence.indexOf(lookFor) > lookFor)
{
sentence += sentence.substring(sentence.indexOf(lookFor));
}
String cleaned = sentence;
return cleaned;
这是我为删除信件而尝试做的事情。 lookFor是已经放入的char,而句子是已经放入的原始句子字符串。目前,我的代码输出句子而没有做任何事情 EX正确输出:输入" abababa"句子; char as" a" --->输出" bbb" 输入" xyxyxy"句子; char" a" --->输出" xyxyxy"
答案 0 :(得分:4)
单个字符串不需要while。只有你一行一行地阅读文字。 在你的情况下像
String a = "abababa";
a = a.replace("a","");
会给你输出“bbb”
答案 1 :(得分:0)
它可能根本没有进入循环。
sentence.indexOf(lookFor)将返回字符串中字符的位置。
lookFor是一个char值。值“a”的数值为97,因此while只能查找前97个字符后的内容。
如果您的代码进入循环,它将永远不会返回。
您正在调用的substring命令会将找到的项目带到字符串的末尾。
+ =,如果它做了你认为将它附加到自己的东西。所以它将需要'ababab'并永远地成为'abababababab'。但幸运的是,你不能在java中的字符串上使用+ =。
你想要的是:
String something = "abababab";
something = something.replaceAll("a", "");
答案 2 :(得分:-1)
如果你只是需要摆脱字母,请使用其他人编写的替换方法,但是如果你想使用while循环,根据我所看到的逻辑,你就是这样做的
while (sentence.indexOf(lookFor) == 0)
sentence = sentence.substring(1);
while (sentence.indexOf(lookFor) > 0)
{
sentence = sentence.substring(0, sentence.indexOf(lookFor)-1)+
sentence.substring(sentence.indexOf(lookFor)+1);
}
return sentence;