gpt4 book ai didi

java - 循环不会从字符串中删除字符的每个实例

转载 作者:行者123 更新时间:2023-11-29 07:31:02 24 4
gpt4 key购买 nike

我正在为类项目工作,我们只需要使用 charAt()、length()、substring() 和 equals() 来操作字符串。

我被困在从字符串中删除字符的每个实例的位上。如果字符串有连续的相同字符,程序每次都会留下一个。例如“下午”。如果我想删除“n”,程序会正确删除 n,输出为“afteroo”。但是,如果我想删除“o”,则输出为“afternon”。

这就是我对这部分程序的看法:

System.out.println("Enter the character to remove.");
removeChar = keyboard.nextLine();

char remove = removeChar.charAt(0),
original;

for(i=0; i < input.length(); i++){
original = sentence.charAt(i);
if(original == remove)
sentence = sentence.substring(0,i) + sentence.substring(i+1);
}
System.out.println(sentence);

最佳答案

因为您要从 for 循环中的字符串中删除字符,如果您连续要删除两个字符,那么第二个字符将被遗漏。这是因为当您删除第一个时,第二个将在索引中移动到第一个所在的位置,然后您将增加 i。要解决此问题,要么在删除字符时不增加 i,要么存储要删除的字符的索引,然后一次将它们全部删除,从字符串的后面到前面以避免再次出现同样的问题。如果您想在删除字符时避免递增 i,while 循环会更好。

关于java - 循环不会从字符串中删除字符的每个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42601257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com