Hi! Habe eine Funktion in Java geschrieben, die überprüfen soll, ob eine bei Programmaufruf (im Args-Array) übergebene Zeichenkette 'krusen'sch' ist, d.h. ob sich Zeichenpaare widerholen. Dazu habe ich folgenden Script geschrieben:
Nun kommt als Ausgabe IMMER die kette ist true.
Auch wenn ich absichtlich falsche Zeichenketten übergebe: z.B. a b a b
hierbei ist nämlich in der if-Abfrage (i=0, j=1, k=2)
kette[k]=kette[2]=kette[ i ]=kette[0] UND
kette[k+j-i]=kette[3]=kette[j]=kette[1]
SOLLTE also false zurückgeben. tuts aber nicht :/
Java:
public class Zeichenketten{
public static void main (String[]args){
String[] kettchen = new String[args.length];
for (int i=0; i<args.length; i++)
kettchen[ i ] = args[ i ];
System.out.println("die kette ist " + check(kettchen));
}
static boolean check(String[] kette){
for (int i=0; i < kette.length; i++){
for (int j=(i+1); j < kette.length; j++){
for (int k=(i+1); k <kette.length; k++){
if (kette[k] == kette[ i ] && kette[k+j-i] == kette[j]){
return false;
}
}
}
}
return true;
}
}
Auch wenn ich absichtlich falsche Zeichenketten übergebe: z.B. a b a b
hierbei ist nämlich in der if-Abfrage (i=0, j=1, k=2)
kette[k]=kette[2]=kette[ i ]=kette[0] UND
kette[k+j-i]=kette[3]=kette[j]=kette[1]
SOLLTE also false zurückgeben. tuts aber nicht :/
Zuletzt bearbeitet von einem Moderator: