# TXT-Datei in 2-Dimensionales Array Einlesen



## pikay (4. Feb 2008)

Hallo.

Habe ein Problem beim Einlesen einer .txt-datei in ein 2-dimensionales Array.
Meine txt-datei sieht folgendermaßen aus:







(">" = Tabulator)

Jetzt möchte ich diese Datei einlesen, so dass sie folgendermaßen vorliegt:







Ziel ist es, spalten- und zeilenweise durch die Datei zu laufen, und Werte zu vergleichen.

Habs mit dem StringTokenizer versucht, aber das würde nur funktionieren, wenn überall Werte stehen würden, die durch Tabulator getrennt sind. Problem ist aber, dass wenn kein Wert an der Stelle steht, ein Tabulator eingefügt wird.
Weiß auch nicht so recht welches Format ich für das Array verwenden soll. Für die Werte bräuchte ich ja ein float oder double Array, aber wie speicher ich dann in der ersten und zweiten Spalten Das Datum und die Uhrzeit? Geht das mit double oder float?

Auch zeichenweises Auslesen der einzelenen Zeilen hat mich nicht weitergebracht, da ich ja keine einstelligen Werte, sondern Werte mit mehreren Stellen und Kommas habe...

Hab bisher leider keinen Lösungsansatz gefunden.

Würde mich sehr über Lösungsansätze freuen.


----------



## SlaterB (4. Feb 2008)

```
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        String st = "a\t\tv\tb";
        String[] p = st.split("\t");
        System.out.println(p.length + ", " + Arrays.toString(p));
    }
}
```

eine einfache manuelle for-Schleife zum selber zerlegen ist aber auch nicht die Welt


----------



## pikay (4. Feb 2008)

Vielen Dank für deine schnelle Antwort. Funktioniert super. Ein kleines Problem gibts aber doch noch   :roll: 

Wenn die Zeile nicht mit einem Wert endet, sondern z.B. noch 5 Tabulatoren kommen, werden diese ignoiert, und nicht ins array mit aufgenommen... Wie bekomme ich die restlichen Tabulatoren auch noch in mein Array??

gruß
pikay


----------



## SlaterB (4. Feb 2008)

String[] p = st.split("\t", Anzahl erwarteter Zeilen); 
oder einfach
String[] p = st.split("\t",  999);


----------



## pikay (4. Feb 2008)

wunderbar, danke....

was mir aber noch probleme bereitet, is das format des arrays. hab zwar jetzt ein zweidimensionales array mit meinem einträgen, aber wie vergleiche ich die werte bei einem String array? größer und kleiner kann ich ja nicht verwenden, oder irre ich mich da?


----------



## SlaterB (4. Feb 2008)

du musst dir die Werte im Array anschauen


----------



## pikay (4. Feb 2008)

ich seh die lösung leider immer noch nicht   

wie kann ich z.B. überprüfen ob das erste element größer ist als das zweite:

[ 25,43, 18,59, 3,17]


----------



## HeRaider (4. Feb 2008)

Kleiner Tipp schau dir mal Integer.parseInt(String) an (natürlich nur wenns nen Integer ist ansonsten die Klassen Double, Float usw.). Dann kannst vergleichen.


----------



## pikay (4. Feb 2008)

danke für den tipp  :toll:


----------

