2016-12-03 3 views
-1

Ich habe eine TXT-Datei mit 300 Zeilen und 785 Spalten mit einer Reihe von Zahlen in E-Notation (z. B. -6.431571950262252035e-02). Wie würde ich diese Zahlen in ein 2D-Array umwandeln?JAVA: Wie konvertiere ich eine TXT-Datei in ein 2-D-Array mit Zahlen in E-Notation?

Das ist alles was ich habe:

double[][] hiddenArray = new double[300][785]; 

Scanner scanner = new Scanner(System.in) ; 
String hiddenFile = "hidden-weights.txt"; 
String outputFile = "output-weights.txt"; 
scanner.close(); 

Scanner in = new Scanner(new File(hiddenFile)); 
String hidden= in.nextLine(); 

Antwort

0

Verwenden Scanner::hasNext() Schleife, während es mehr Linien und Scanner::nextLine() sind die nächste Zeile zu holen, dann String::split() verwenden, um ein Array von Strings in jeder Zeile zu erhalten (Anmerkung: mein Voraussetzung ist, dass die Spalten durch Kommata getrennt sind (zB ,), aber passen Sie sich an Ihre Bedürfnisse an). Verwenden Sie Double.valueof(), um die Zahlen in E-Notation zu analysieren, und fügen Sie diesen Wert dem Array hinzu (z. B. hiddenArray).

Sie sollten das folgende Beispiel verwenden können. Ich habe auch ein Beispiel auf tutorialspoint.com codingGround erstellt, aber das kann nicht funktionieren ...

try { 
     String delimiter = ","; //separates columns - change for your needs 

     int row = 0; 
     Scanner in = new Scanner(new File(hiddenFile)); 
     String line; 
     while (in.hasNext() && (line = in.nextLine()) != null) { 
      String[] vals = line.trim().split(","); 

      for (int col = 0; col < vals.length; col++) { 
       hiddenArray[row][col] = Double.valueOf(vals[col]); 
      } 
      row++; 
     }  
    } 
    catch(FileNotFoundException e) { 
     System.out.println("file not found - "+e.getMessage()); 
    } 
Verwandte Themen