Я пытаюсь нарезать строку в первый раз.Нарезка строки
С помощью этого кода, если я ввожу, например, «один два три», он работает нормально до последнего слова. Это последние несколько строк вывода:
текущее слово Чет
Предложение теперь е
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 3
at java.lang.String.substring(String.java:1907)
at TestCurr.main(testCurrentWord.java:18)
Кто-нибудь любая идея, почему он делает это до последнего слова?
class TestCurr
{
public static void main (String []args)
{
String s;
int i;
String currentWord;
int length;
int spacePos;
System.out.println("Enter a sentence ");
s = EasyIn.getString();
spacePos = s.indexOf(" ");
length = s.length();
for (i = length -1; i >= 0; i--)
{
currentWord = s.substring(0,spacePos);
s = s.substring(spacePos +1);
System.out.println("Current word is " + currentWord);
System.out.println("Sentence is now " + s);
}
}
}
Рассмотрите, что вы делаете _inside_ цикл даже после смены 's'. –
Я предполагаю, что это домашнее задание (или тому подобное), и вы пытаетесь научиться разбивать строку самостоятельно. Если нет, вы должны использовать [функцию 'String.split'] (http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split%28java.lang.String% 29). –