Prise en charge d'une liste de chaînes et conversion en float et stockage des valeurs. Je reçois cette erreur lorsque je tape la deuxième valeur que je veux stocker. Voici le code et le fichier texte je lis:Java NumberFormatException Erreur String to Float
public static void readCities() {
StringBuilder sb = new StringBuilder();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("C:/Users/Luke/workspace/Traveling Sales Person/Destinations/11PointDFSBFS.tsp"));
String line;
while ((line = br.readLine()) != null) {
if (sb.length() > 0) {
sb.append("\n");
}
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
String contents = sb.toString();
String[] parts = contents.split("NODE_COORD_SECTION");//splits into locations
String[] locations = parts[1].split(" ");
int counter = 0;
for (int i = 1; i < locations.length; i++) {
cities[counter] = new City(Float.parseFloat(locations[i+1]), Float.parseFloat(locations[i+2]));
counter++;
}
}
Code d'erreur:
Exception in thread "main" java.lang.NumberFormatException: For input string: "63.860370
2
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseFloat(FloatingDecimal.java:122)
at java.lang.Float.parseFloat(Float.java:451)
at TSP.readCities(TSP.java:132)
at TSP.main(TSP.java:28)
Votre chaîne de nombre contient au moins une nouvelle ligne (\ n), qui ne peut pas être analysée dans un Float. Selon 11PointDFSBFS.tsp peut-être aussi un espace, mais puisque vous n'avez pas publié le contenu, il est plus d'une estimation – petul
Vous devriez nous montrer le contenu du fichier. – NiVeR
Veuillez essayer de construire et de fournir un [mcve] qui reproduira l'erreur la prochaine fois - cela vous aurait clairement montré l'erreur, et si ce n'était pas le cas, cela vous aurait conduit à une question beaucoup plus utile ainsi que le reste d'entre nous. – Dukeling