Funktion gibt immer true aus. Warum??

Apfelvater

Mitglied
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:
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;
   }
}
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 :/
 
Zuletzt bearbeitet von einem Moderator:

Joose

Top Contributor
Bitte für Code immer die Code-Tags verwenden
[code=java] /* dein code */[/code]
Dann wird alles schön dargestellt :)
Bei einem [i] kann es passieren das Text schräg dargestellt wird (wenn die codetags fehlen)
 

Neue Themen


Oben