2017-02-04 2 views
-1

Ich versuche, den Code unten auszuführen, aber ich bekomme eine IndexOutOfBoundsException. Ich weiß, wo das Problem ist, aber um den Code zu verbessern, möchte ich eine if Anweisung hinzufügen, so dass die while Schleife bricht, wenn der Index außerhalb der Grenzen ist. Es sollte jetzt drucken, ohne eine Ausnahme zu werfen.Index OutOfBound Ausnahme für ein Stück Code?

Glauben Sie, dass eine if-Anweisung dafür verwendet werden sollte: index > input.length() - 3, aber wo füge ich es hinzu?

public class test { 
    public void findAbc(String input) { 
     int index = input.indexOf("abc"); 
     while (true) { 
      if (index == -1) { 
       break; 
      } 

      String found = input.substring(index + 1, index + 4); 
      System.out.println(found); 
      index = input.indexOf("abc", index + 4); 


     } 
    } 

    public void test() { 
     findAbc("abcdabc"); 
    } 
} 
+0

** Es sollte nun drucken „bcd“ ** hier bedeutet d nächste Zeichen nach dem ‚c‘ –

+1

Was ist der Zweck dieser ist Methode, und warum codierst du 'abc' als Teilstring? –

+0

jetzt gut eingerückt –

Antwort

3

Sie diese Bedingung in Ihrem while-loop Zustand verwenden sollten,

while (index < input.length()-3 && index >= 0) { } 
Verwandte Themen