Java: Parsen von CSV-Daten
honolulu
- java
Hallo Forum,
ich programmiere seit Kurzem in Java. Bin aber nicht neu in dem Thema, programmiere ein paar andere Sprachen schon seit ziemlich langer Zeit.
Ich möchte die Windows-Ausgabe von "systeminfo" geordnet ausgeben, um sie mit derselben Ausgabe anderer Maschinen vergleichen kann.
Bisher habe ich folgenden Code geschrieben:
String command="systeminfo /FO CSV";
String del=",";
Process p = Runtime.getRuntime().exec("cmd /c " + command);
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));
String s;
String[][] splitArray;
Integer c=0;
while((s=in.readLine()) != null)
{
if(s.length()!=0)
{
splitArray[c] = s.split(del);
c++;
}
}
Allerdings kann ich machen was ich will. Die Zeile "splitArray[c] = s.split(del);" ruft, egal in welcher Kombination, Fehler hervor: "Type mismatch: cannot convert from String[] to String".
Wo liegt mein Denkfehler?
MfG
honolulu
Servus!
[...]
Allerdings kann ich machen was ich will. Die Zeile "splitArray[c] = s.split(del);" ruft, egal in welcher Kombination, Fehler hervor: "Type mismatch: cannot convert from String[] to String".
Wo liegt mein Denkfehler?
Du willst einem Element in Deinem String Array (splitArray[c]) ein String Array zuweisen. Das kann nicht gehen. So wäre es richtig:
splitArray = s.split(del);
Schöne Grüße,
Peter
Stop, erst lesen, dann klugscheißen! Sorry!
Du hast ja ein zweidimensionales Array, das sollte also passen. Allerdings ist der Fehler immer noch der selbe. An einer Stelle im splitArray kann immer nur ein String liegen, so auch an splitArray[c].
Vielleicht findest Du eine besser geeignete Datenstruktur für Deinen Textinhalt, oder im Zweifelsfall einfach eine Liste von String[]. Dann könnte der Code so aussehen:
List<String[]> splitData = new ArrayList<String[]>();
// schleife
splitData.add(string.split(del));
Schöne Grüße,
Peter
Hi,
String[][] splitArray;
Du deklarierst hier ein zweidimensionales String-Array.
splitArray[c] = s.split(del);
obwohl das Array nicht initialisiert wurde, willst Du hier etwas reinschreiben.
Also selbst wenn die Typen stimmen würden, würde es hier krachen.
cu,
Andreas