Lecture en double des valeurs à partir d'un fichier
Je suis en train de lire quelques numéros (double) à partir d'un fichier et de les stocker dans une liste de tableaux et d'un tableau (oui, j'ai besoin de deux) avec le code ci-dessous:
try {
Scanner scan = new Scanner(file).useDelimiter("\\s*\\n");
while(scan.hasNextDouble())
{
tmp.add(scan.nextDouble());
}
Double[][] tmp2 = new Double[tmp.size()/2][2];
int tmp3 = 0;
for(int i = 0; i < tmp.size()/2; i++)
{
for(int j = 0; j < 2; j++)
{
tmp2[i][j] = tmp.get(tmp3);
tmp3++;
}
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
}
Le fichier que je suis en train de lire est:
0.0 0.0
0.023 0.023
0.05 0.05
0.2 0.2
0.5 0.5
0.8 0.8
0.950 0.950
0.977 0.977
1.0 1.0
Mais bien mon code ne fonctionne pas, le hasNextDouble() la fonction n'est pas de trouver quoi que ce soit, ce que je fais mal?
EDIT: ok, donc j'ai édité la source un peu (modifié à partir de l'Objet[][] Double [] []), et ajouté de l'insertion de valeurs dans le tableau après qu'ils ont été insérés dans la liste de tableaux, mais cela ne fonctionne toujours pas - le", alors que " la boucle n'est pas exécutée qu'une seule fois.
Je crois qu'il y a quelque chose qui cloche dans ce que vous faites avec
tmp
. Quel est son type, et ce qui est en avant de votre code commence?Liste<Double> tmp = new ArrayList<Double>(); Mais je pense que ce n'est pas ça, je pense juste que de l'analyse.hasNextDouble() retourne false toujours.
S'il vous plaît aller lire un décent livre sur l'appellation des variables et des normes de codage. Pensez-vous vraiment que tout le monde (même vous-même après quelques semaines) comprendre tmp, tmp2, tmp3?
Il est, comme son nom l'indique, une variable temporaire, qui est utilisé seul. Seulement meilleur nom serait: "aTemporaryArrayWhichStoresDataFromthefilewhichthenwillbeputintoajtable".
OriginalL'auteur Mateusz Dymczyk | 2009-12-06
Vous devez vous connecter pour publier un commentaire.
J'ai essayé de réduire le code à tester le Scanner par lui-même. Le code suivant fonctionne avec votre fichier de données:
J'ai obtenu à la suite (prévue) de sortie:
Essayez ceci pour assurez-vous que vous faites référence à la correcte du fichier.
S'accrocher, les tests...
J'ai du mal à croire que. J'ai juste couru le code sans changer de Scanner et n'eut aucune difficulté à la lecture de l'entrée.
Le code avec aucun changement n'a même pas compiler.
sho nuff. J'ai enveloppé dans une main() et ajouté les définitions de tmp et de fichier.
OriginalL'auteur Bill the Lizard
Ci-dessous est mon interprétation de votre code, adapté pour le faire fonctionner. Il explose immédiatement avec un tableau d'indexation des exceptions.
Donc: Pouvez-vous nous donner un peu plus de cadre? Ce qui est différent de ce que j'ai fait?
OriginalL'auteur Carl Smotricz
Essayez de définir le séparateur d'abord:
JavaDoc
OriginalL'auteur Charlie Brown
J'ai eu le même problème (pas de travail du scanner) et la solution semble être étonnamment facile.
Vous avez juste besoin de définir des paramètres régionaux pour elle.
prises à partir d'ici: http://www.tutorialspoint.com/java/util/scanner_nextdouble.htm
OriginalL'auteur MindIbniM