Задача: В этой задаче вы удаляете все вхождения строки удаления из исходной строки. Каждый раз, когда вы вынимаете строку удаления, вы также должны удалять букву, которая предшествовала строке удаления. После удаления строки и ее начального символа необходимо проверить, существует ли еще вхождение строки удаления.
Вопрос: я не понимаю, почему я продолжаю получать это исключение и как почини это. Мой вход для организации 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 (Упражнение 8. 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);
}
}