Bonjour à tous,

J'ai un souci avec la fonction scanner de java.

Je désire exploiter les données d'un document texte (situé dans C:\data.txt) de la forme:

Puzzle 1(4solutions)
A -4 1 -3 2
B -2 4 3 -2
C -3 1 -2 4
D 3 2 -1 -4
E 2 -1 4 -3
F -4 1 3 -2
G -3 -2 2 1
H -1 -4 2 3
I -2 1 2 -1
qui contient donc une première ligne qui sert de titre, ainsi que 36 chiffres et 9 lettres.

Chaque ligne correspond à une Piece (une Piece se construit à l'aide de 4 int, et une String: Piece(int,int,int,int,String) ). Je voudrai donc remplir un tableau de Piece en utilisant les données de ce fichier.
Voici le code que j'ai:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public void lire() throws FileNotFoundException{
 
 
		Scanner scanner=new Scanner(new File("C:\\data.txt"));
 
		// On boucle sur chaque champ detecté
		int i = 0;
		int j = 0;
		int[] tab = new int[36];
		String[] lines = new String[10];
		while (scanner.hasNextLine() && i<10) {
		    String line = scanner.nextLine();
		      while (scanner.hasNextInt()) {
		    	long x = scanner.nextInt();
		    	tab[j] = scanner.nextInt();
		    	j++;
		    }
 
		    lines[i] = line;
		    i++;
		}
 
		scanner.close();
 
	 //exemple pour la ligne 1: A -4  1 -3  2
		String input = lines[1];
	     Scanner s = new Scanner(input);
	     System.out.println(s.nextInt()); 
             //ici je voudrai avoir:
             //pieces[1] = new Piece(-4, 1, -3, 2, "A");
	     s.close(); 
	}
Or, Eclipse me renvoi l'erreur suivante:

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at puzzle.Pool.lire(Pool.java:102)
at puzzle.testPool.main(testPool.java:24)

J'ai cru comprendre que c'était du au fait que je veux récupérer à la fois des lettres et des chiffres mais j'ai du mal à comprendre comment faire.

Si quelqu'un a une idée

Merci d'avance !