2016-03-20 3 views
0

код компилируется, а также работает для любой передаваемой строки, но не работает для проверки гласных. Он выдает ошибку String за пределами границ, и я понятия не имею, почему. проверка на согласные работает.Получение исключения из строки

Вот код:

public String catchword(String word){ 
    int x = 0; 
    for(x=0; x<word.length()+1; x++){ 
     boolean v = Vowel(word.charAt(x)); 
     boolean c = Consonant(word.charAt(x)); 
     if (x<word.length()-1){ 
      v = Vowel(word.charAt(x+1)); 
     } else{ 
      v = true; 
     } 

     if (c == true && v == true){ 
      word = word.substring(0,x+1) + "op" + word.substring(x+1,word.length()); 
      x = x+3; 
     } 
    } 
    System.out.print(word); 
    return word; 
} 
+2

'for (x = 0; x Tunaki

+0

ahh. я вижу проблему сейчас. спасибо – john

ответ

0

В for(x=0; x<word.length()+1; x++)

x<word.length()+1 

Должно быть

x<word.length()-1 

Максимальный индекс word является word.length()-1

У вас также будет проблема в word.charAt(x+1). word.length() - 1 - максимальный индекс, когда x будет равен ему, вы снова получите IndexOutOfBoundsException.

+0

спасибо! теперь работает – john

Смежные вопросы