hi,
ich muss eine funktion machen die zwei char arrays auf gleichheit prueft.
java beschwert sich zwar nicht ueber einen syntaxfehler,aber bei der ausfuehrung treten fehler auf:
"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at de.tum.ws2009.grprog.uebungsblatt04.CharArrayCompare.isEqual(CharArrayCompare.java:43)
at de.tum.ws2009.grprog.uebungsblatt04.CharArrayCompare.main(CharArrayCompare.java:86)"
was bedeuten diese fehlermeldungen konkret?
ich habe hier mal den code niedergeschrieben.vielleicht entdeckt jemand einen fehler
ah ja ich hab vergessen, dass ich die funktion auch aufrufe.vielleicht geschieht auch dort ein fehler.
ich muss eine funktion machen die zwei char arrays auf gleichheit prueft.
java beschwert sich zwar nicht ueber einen syntaxfehler,aber bei der ausfuehrung treten fehler auf:
"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at de.tum.ws2009.grprog.uebungsblatt04.CharArrayCompare.isEqual(CharArrayCompare.java:43)
at de.tum.ws2009.grprog.uebungsblatt04.CharArrayCompare.main(CharArrayCompare.java:86)"
was bedeuten diese fehlermeldungen konkret?
ich habe hier mal den code niedergeschrieben.vielleicht entdeckt jemand einen fehler
Java:
public static boolean isEqual(char[] str1, char[] str2)//(b)
{
if(str1.length==0&&str2.length==0)//string 1 und 2 haben laenge 0
{
System.out.println("true");//schreibe true
return true;//true wird zurueckgegeben
}
else//string 1 und 2 haben nicht laenge 0
{
if(str1.length==str2.length)//char[] str1 ist gleich lang wie char [] str2
{
int i=0;//setze i = 0
while (str1[i]==str2[i]&&i<=str1.length)//wenn str1 an der i-ten position str2 gleicht und i kleiner gleich der laenge von str1 ist, dann sind wir in der schleife
{
i++;//checkt nacheinander alle eintraege der arrays auf gleichheit
}
if(str1[i]!=str2[i])//die schleife wurde verlassen, weil str1[i]!=str2[i] oder weil alle eintraege verglichen wurden
{
System.out.println("false");//schreibe false
return false;
}
else//alle eintraege wurden abgeglichen:es wurde nie ungleichheit festgestellt
{
System.out.println("true");//schreibe true
return true;
}
}
else//char[] str1 ist nicht gleich lang wie char [] str2
{
System.out.println("false");//schreibe false
return false;
}
}
}
ah ja ich hab vergessen, dass ich die funktion auch aufrufe.vielleicht geschieht auch dort ein fehler.
Java:
public static void main(String args[]) {
char[]a=new char[5];//array der laenge 5
char[]b=new char[5];//array der laenge 5
isEqual(a,b);