Erreur java.lang.NumberFormatException: Pour la saisie de texte: “”
Je suis en train de lire ce fichier
C101
VEHICLE
NUMBER CAPACITY
25 200
CUSTOMER
CUST NO. XCOORD. YCOORD. DEMAND READY TIME DUE DATE SERVICE TIME
0 40 50 0 0 1236 0
1 45 68 10 912 967 90
2 45 70 30 825 870 90
3 42 66 10 65 146 90
4 42 68 10 727 782 90
5 42 65 10 15 67 90
6 40 69 20 621 702 90
7 40 66 20 170 225 90
8 38 68 20 255 324 90
Mais quand je lis le fichier, le programme me lance cette exception:
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:504)
at java.lang.Integer.parseInt(Integer.java:527)
at VRP.main(VRP.java:43)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
Je cheked mon code et de débogage, mais je ne trouve pas le problème.
J'ai utilisé un tableau pour enregistrer tous les espaces entre les colonnes (je n'ai lu que les quatre premières colonnes), puis une liste de tableaux, mais il n'a pas travaillé.
public static void main(String[] args) throws Exception {
File f = new File("C101.txt");
FileReader fr = new FileReader(f);
BufferedReader reader = new BufferedReader(fr);
String nada = reader.readLine(); //C101
nada = reader.readLine(); //espacio en blanco
nada = reader.readLine(); //vehicle=25
nada = reader.readLine(); //number, capacity
nada = reader.readLine(); //25, 200
nada = reader.readLine(); //espacio en blanco
nada = reader.readLine(); //customer
nada = reader.readLine(); //encabezados
nada = reader.readLine(); //espacio en blanco
String[] espacios;
int capacity = 200;
int custno, xcoord, ycoord, demand;
ArrayList<String> guardar = new ArrayList<String>();
while (reader.ready()) {
espacios = reader.readLine().trim().split(" ");
for (int i = 0; i < espacios.length; i++) {
guardar.add(espacios[i]);
}
custno = Integer.parseInt(espacios[0]);
xcoord = Integer.parseInt(espacios[1]);
ycoord = Integer.parseInt(espacios[2]);
demand = Integer.parseInt(espacios[3]);
}
}
Désolé pour les inconvénients et vous remercions pour votre temps.
OriginalL'auteur ArCiGo | 2014-02-03
Vous devez vous connecter pour publier un commentaire.
Vous êtes fractionnement sur un seul espace, mais il n'y a plus d'un espace entre les colonnes de type entier
Il est probable que le problème est résolu, mais que le étrangères de la ligne à la fin du fichier a provoqué le même problème plus tard lors de la lecture du fichier
Oui . Merci!!!!
OriginalL'auteur Reimeus
Vous avez à faire assurez-vous que
espacios[0]
parespacios[3]
sont en fait des entiers. Ce que vous devriez faire est de les imprimer afin de la vérifier. Si l'un d'eux n'est pas un nombre entier,Integer.parseInt()
va lever cette exception.vous avez à utiliser un debgger ou println quoi que ce soit. Jeter toutes les hypothèses de la fenêtre. 1+ pour la réponse.
J'ai trouvé l'erreur: à la fin de l' .fichier txt un espace vide a été laissé par l'auteur
OriginalL'auteur La-comadreja