任务:在此问题中,您从原始字符串中删除所有出现的删除字符串。每次取出删除字符串时,您还必须删除删除字符串前面的字母。删除字符串及其前导字符后,必须检查是否存在更多出现的删除字符串。
问题:我不明白为什么我不断收到此异常以及如何修复它。
我对该组织的输入是 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) 在Exercise8.main(Exercise8.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;
}
}
您需要注意不要在无效索引处开始子字符串。
关于Java删除字符串问题(请不要使用StringBuilder或BufferedWriter给出任何解决方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60834916/