Java Remove String Problem(请不要使用 StringBuilder 或 BufferedWriter 给出任何解决方案)



任务:在这个问题中,您从原始字符串中删除所有出现的删除字符串。每次取出删除字符串时,还必须删除删除字符串之前的字母。删除字符串及其前导字符后,必须检查是否还存在删除字符串。

问题是:我不明白为什么我一直遇到这个异常,以及如何修复它。我对组织的输入是fuxqwexqwertyxqwexqwertyrtyxqwertyrtyn。我的删除输入是qwerty。我预期的输出应该很有趣。

线程"main"java.lang.StringIndexOutOfBoundsException异常:开始1,结束7,长度3位于java.base/java.lang.String.checkBoundsBeginEnd(String.java:3410(位于java.base/java.lang.String.substring(String.java:1883(在Exercise8.remove(Exercise8.java:17(在练习8.main(练习8.java:10(

import java.util.*;
public class Exercise8 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Sample input: ");
String org = scan.nextLine();
String removal = scan.nextLine();
remove(org, removal);
}
private static void remove(String org, String removal) {
for (int x = 0; x < org.length()-1; x++)
{
if (org.substring(x,x + removal.length()).equals(removal))
{
org = org.substring(0,x-1) + org.substring(x + removal.length(), org.length());
x = 0;
}
}
System.out.println(org);
}
}
for (int x = 0; x < org.length()-removal.length(); x++)
{
if (org.substring(x,x + removal.length()).equals(removal))
{
org = org.substring(0,x-1) + org.substring(x + removal.length(), org.length());
x = 0;
}
}

您需要注意不要在无效索引处启动子字符串。

最新更新