Ошибка в строковом методе подстроки в Java - PullRequest
0 голосов
/ 28 мая 2018

Я получаю эту ошибку в этом коде.Что мне делать?

// ошибка

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1931)
at StringExample.main(StringExample.java:18) 

// код

String s=sc.nextLine();
int first=s.indexOf("");
int second=s.lastIndexOf("");
String sur=s.substring(second+1);      //18 line
String middle=s.substring(first+1,second);
String firstname=s.substring(0,first);
System.out.println(sur+""+firstname+""+middle);

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

.indexOf ("") метод дает вам начало вашей строки, а .lastIndexOf ("") дает вам конец вашей строки .. Я думаю, вы должны использовать свой последний метод индекса (". LastIndexOf (" ")) как.lastIndexOf ("");.

0 голосов
/ 28 мая 2018

Значение second в вашем коде, скорее всего, является последним индексом вашей строки.Для hello world это будет 11.

Теперь, если вы увеличите это число и используете его в качестве первого индекса строки, вы получите -1, потому что ваш начальный индекс больше, чем последний индекс в вашемstring.

Логически это тоже не имеет смысла.Вы пытаетесь получить подстроку из строки, которая начинается после фактической строки.

Глядя на ваш пример, я думаю, что вы должны использовать indexOf(" ") вместо этого.Вместо этого он дает индекс пробела.

...