2016-11-14 2 views
2

Ich habe diesen Code:ändern Wert von Array

List<String[]> list = csvReader.readAll(); 
// Convert to 2D array 
String[][] dataArr = new String[list.size()][]; 

Jetzt habe ich einige Zeichen auf bestimmte Werte ersetzt werden soll.

dataArr = list.toArray(dataArr); 
String help = Arrays.toString(dataArr[0]).replace("[", ""); 
dataArr[0] = help; 

Aber ich bekomme diese Fehlermeldung:

incompatible types: String cannot be converted to String[]

Meine Frage ist, wie kann ich dieses Problem beheben?

Edit:

Wow, vielen Dank für die Eingabe.

Ich habe ein wenig genauer zu sein, und dies ist meine Eingabedatei:

[0,0,0,1,1]

[1,1,1,1,1]

[0,0,0,0,0]

[1,0,1,0,1]

[0,1,0,1,0]

Diese Zeile:

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

führt zu folgenden Ausgabe:

[[[0, 0, 0, 1, 1]], [[1, 1, 1, 1, 1]], [[0, 0, 0, 0, 0]], [[1, 0, 1, 0, 1]], [[0, 1, 0, 1, 0]]]

I möchte das doppelte "[[" und "]]" zu "[" und "]" ersetzen.

+2

Sie sollten dataArr verwenden [] [], während ersetzen() aufgerufen wird, weil es sich um ein 2D-Array ist –

+1

es nicht, weil Sie Ihre 'dataArr' nur umgewandelt funktioniert zu einem 2D-Array . Also müssen Sie 'dataArr [0] [0]' machen, um das erste Element zu erhalten. –

+0

Hast du es funktioniert? – ItamarG3

Antwort

1

ersetzen alle "[[" Sie einfach

String output = Arrays.deepToString(dataArr); 
output = output.replaceAll("\\[\\[","\\["); 
output = output.replaceAll("\\]\\]","\\]"); 
output = output.substring(2, output.length()-2); 
String[] matrix = output.split("\\],\\["); 

verwenden Und das sollte es tun Zeichenfolge

+0

Ausnahme im Thread "main" java.util.regex.PatternSyntaxException: Nicht geschlossene Zeichenklasse nahe Index 1 [[ ] Danke, perfekte Idee, aber ich bekomme diesen Fehler .. – moses

+0

oops. nur eine Sekunde – ItamarG3

+0

@NicoHoppel, wie wäre es jetzt? – ItamarG3

0

dataArr ist vom Typ String [] []

Sie nicht zuordnen können Dazu

dataArr[0] = help; 
1

dataArr ist ein 2D-Array von Zeichenfolge . Sie versuchen, einem DatenArr [0], das ein Array von Zeichenfolgen ist, Hilfe-String zuzuweisen. Sie müssen zweiten Index zB

dataArr[0][0] = help; 
0
dataArr[0] = help; 

Das ist Ihr Problem an. Es könnte mit zu beschließen:

dataArr[0][0] = help;