Bonjour,
je souhaiterais faire un parsing de fichier dont les données sont sous forme de:
2;[15,3,9] --> int;ArrayList
qqu aurait une idée comment utiliser le StringTokenizer dans ce cas?
Merci.
Version imprimable
Bonjour,
je souhaiterais faire un parsing de fichier dont les données sont sous forme de:
2;[15,3,9] --> int;ArrayList
qqu aurait une idée comment utiliser le StringTokenizer dans ce cas?
Merci.
Ca te va ça ?
Code:
1
2
3
4
5
6
7
8
9
10
11 String s = "2;[15,3,9]"; StringTokenizer st = new StringTokenizer(s, ";,[]"); Integer p1 = new Integer(st.nextToken()); ArrayList<Integer> p2 = new ArrayList<Integer>(); while (st.countTokens() != 0) { p2.add(new Integer(st.nextToken())); } System.out.println(p1 + "; " + p2);
Merci pour ta proposition, Voici le code que j'ai mis, par contre le retour à la ligne ne marche pas.
dans mon fichier j'ai plusieurs lignes sous forme de:
2;[15,3,9]
3;[7,16,90]
4;[1,30,8]....
En plus, quand j'exécute ce code, pour voir par exp, quelle est la liste associée au N°2, ça me revoie une liste avec tous les éléments confondues (y compris ceux des autres lignes)
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ArrayList mt = new ArrayList(); while((line = bufRdr.readLine()) != null) { splitter = new StringTokenizer(line, "; [] , "); if (splitter.hasMoreTokens()) { //atc ce sont les 1ers éléments par exp "2;" int atc = Integer.parseInt(splitter.nextToken()); //mot se sont les éléments de la liste int mot = Integer.parseInt(splitter.nextToken()); mt.add(mot); } }
J'ai ce qui suit comme code. Ca a pourtant bien l'air de marcher :
Quand tu dis que les "retours a la lignes de marche", ca veut dire quoi ? Donne un exemple d'une liste resultat stp.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 ArrayList<String> bufRdr = new ArrayList<String>(); bufRdr.add("2;[15,3,9]"); bufRdr.add("3;[7,16,90]"); bufRdr.add("4;[1,30,8]"); StringTokenizer splitter; ArrayList mt = new ArrayList(); Iterator<String> lines = bufRdr.iterator(); while (lines.hasNext()) { String line = (String) lines.next(); splitter = new StringTokenizer(line, ";[], "); if (splitter.hasMoreTokens()) { // atc ce sont les 1ers éléments par exp "2;" int atc = Integer.parseInt(splitter.nextToken()); // mot se sont les éléments de la liste int mot = Integer.parseInt(splitter.nextToken()); mt.add(mot); } } System.out.println(mt);