2016-06-23 7 views
0

Ich versuche, ein 1D-Array in ein 2D-Array ([5] [5]) ohne doppelte Zeichen zu konvertieren. Ich kann nicht scheinen, dass es konsistent ist, manchmal funktioniert es und manchmal nicht.Konvertieren von 1D-Array in 2D-Array ohne Duplikate

Input: billys

Output: [[b, i, l, y,], [,,], [,,], [,,], [,,, ]]

Offensichtlich die 's' fehlt, aber hat eine der ‚L's

Eingabe korrekt entfernt: billysb

output: [[b, i, l, y, s], [, ,,,], [,,,,], [,,,,], [,,,,]]

Wieder korrekt entfernt die doppelten Buchstaben.

Input: billysabc

Ausgang: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 9

Input: bbbbbbb

Ouput: [[b, b, b,,], [,,,,], [,,,,], [,,,,]]

Einige, aber nicht alle Duplikate entfernen.

hier ist der Code, die Umwandlung für mich tun:

char[][] playFairGrid = new char[5][5]; 
 

 
//write keyword to array 
 
     char[] keywordBreakdown = keyword.toCharArray(); 
 

 
     //write keyword to grid 
 
     for(int i =0; i<5;i++){ 
 
      for(int j=0;j<5;j++){ 
 
       if (count==keywordBreakdown.length-1) break; 
 
       //check for duplicates 
 
       for(int m =0; m<5;m++){ 
 
        for(int l=0;l<5;l++){ 
 
         if (keywordBreakdown[count]==playFairGrid[m][l]){ 
 
          count++; 
 
         } 
 
        } 
 
       } 
 
       playFairGrid[i][j]=keywordBreakdown[count]; 
 
       count++; 
 

 
      } 
 
     } 
 

 
     System.out.println(Arrays.deepToString(playFairGrid));

alle sehr zu schätzen helfen! das ist seit ein paar Stunden ein Schmerz.

+1

können Sie leicht Duplikate entfernen, indem alle Zeichen auf eine 'Set ' –

+0

@ClarkKent Hinzufügen bitte –

+0

„Die Schnittstelle java.util.Set extrapolieren ist ein Subtyp der java.util.Collection-Schnittstelle und stellt eine Menge von Objekten dar, dh jedes Element kann nur einmal in einem Set existieren. http://tutorials.jenkov.com/java-collections/set.html –

Antwort