2016-12-03 1 views
-1

J'ai un fichier .txt avec 300 lignes et 785 colonnes avec un tas de chiffres en notation E (par exemple -6.431571950262252035e-02). Comment pourrais-je convertir ces nombres en un tableau à deux dimensions?JAVA: comment convertir un fichier txt en un tableau à deux dimensions avec des nombres en notation E?

C'est tout ce que j'ai:

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(); 

Répondre

0

Utilisez Scanner::hasNext() en boucle alors qu'il ya plus de lignes et Scanner::nextLine() pour aller chercher la ligne suivante, puis utilisez String::split() pour obtenir un tableau de chaînes sur chaque ligne (Note: mon La présomption est que les colonnes sont séparées par des virgules (c'est-à-dire ,) mais n'hésitez pas à vous adapter à vos besoins). Pour analyser les nombres en notation e, utilisez Double.valueof() et ajoutez cette valeur au tableau (par exemple hiddenArray).

Vous devriez pouvoir utiliser l'exemple ci-dessous. J'ai également créé un exemple sur tutorialspoint.com codingGround mais cela peut ne pas fonctionner ...

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()); 
    }