Dies ist die for
Version der Schleife:For-Schleife funktioniert nicht, aber die While-Schleife funktioniert, warum?
private String tailOfWord(String nextToken) {
int posWov = firstVowel(nextToken);
String result = "";
int checker = nextToken.length();
for (int i = posWov; i <= checker; i++) {
result += nextToken.charAt(i);
}
return result;
}
Dies ist die while
Version der Schleife:
private String tailOfWord(String nextToken) {
int posWov = firstVowel(nextToken);
String result = "";
int checker = nextToken.length();
int i = posWov;
while (i < checker) {
result += nextToken.charAt(i);
i++;
}
return result;
}
Wenn ich es mit, während es perfekt funktioniert, aber wenn ich es mit für , es gibt mir diese Fehler:
Exception in thread "Thread-3" java.lang.StringIndexOutOfBoundsException: String index out of range: 4
at java.lang.String.charAt(Unknown Source)
at acrotry.tailOfWord(acrotry.java:73)
at acrotry.transform(acrotry.java:52)
at acrotry.pigLatin(acrotry.java:20)
at acrotry.run(acrotry.java:11)
at acm.program.Program.runHook(Program.java:1568)
at acm.program.Program.startRun(Program.java:1557)
at acm.program.AppletStarter.run(Program.java:1895)
at java.lang.Thread.run(Unknown Source)
Weil 'i <= checker' nicht' i
Der '<=' Vergleichsoperator bewirkt, dass die Schleife zu oft auftritt und der 'charAt'-Aufruf versucht, ein Element zu erhalten, das außerhalb der Grenzen von String nextToken liegt. – crm