# Funktion gibt immer true aus. Warum??



## Apfelvater (3. Dez 2015)

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:

```
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 :/


----------



## Thallius (3. Dez 2015)

Wierso sollte kette[2] = kette sein?


----------



## Apfelvater (3. Dez 2015)

Thallius hat gesagt.:


> Wierso sollte kette[2] = kette sein?


kette[2] soll kette sein, weiß nicht, warum "" (hier mehrmals) entfernt wird...


----------



## Apfelvater (3. Dez 2015)

Apfelvater hat gesagt.:


> kette[2] soll kette_ sein, weiß nicht, warum "" (hier mehrmals) entfernt wird..._


[ i ]!!!!!


----------



## Joose (3. Dez 2015)

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)


----------

