使用Java

时间:2015-10-13 21:16:26

标签: java loops while-loop

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"

3 个答案:

答案 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;