Ok, sorry, was ich gesagt habe, ist (mittlerweile für diese Aufgabe) falsch. Die Tests wurden geändert. Sie sind jetzt strenger und verlangen unbedingt, dass die Klasse StringHelper verwendet wird und sie sind mal wieder fehlerhaft. Hier ist mein neuer Code, der jetzt funktioniert:
Code: Alles auswählen
{
if(a == null || b == null) throw new IllegalArgumentException();
char[] cA = StringHelper.toCharArray(a);
char[] cB = StringHelper.toCharArray(b);
if(a.length() <= 0 || b.length() <= 0) return false;
for(int i = 0; i < cA.length; i++)
{
//if(cA[i] != cB[i]) return false;
if(StringHelper.charAt(a,i) != StringHelper.charAt(b,i)) return false;
}
return true;
}
Wie du siehst, musste ich die Abfrage cA[ i ] != cB[ i ] durch die charAt-Methoden ersetzen. Jetzt könntest du dich fragen, warum ich überhaupt noch die char-Arrays erstelle? Wenn ich das nicht mache, meckert der immer noch, dass keine StringHelper-Methoden eingesetzt wurden im Fall, dass eine der Strings die Länge 0 hat. In dem Fall würde man aber normalerweise direkt die Zeile
aufrufen, so dass man gar keine Methoden der StringHelper-Klasse braucht!
@ Dogruel, Erdi: Ich bitte doch, das zu korrigieren! Mich würde auch interessieren, wie der Code der Musterlösung aussieht, bei dem vom Author gesagt wurde: Das ist der einfachste Code, den man sich vorstellen kann, der keine sinnlosen Dinge tut, nur um die Tests zu bestehen...