Bonjour à tous !
J'ai un problème sur la syntaxe des Pattern de Java. Je souhaite charger un fichier texte pour lire tout les mots séparé par un blanc (espace, tabulation, retour à la ligne...). Jusque là ce n'est pas difficile. Mais je voudrais aussi ignoré les lignes de commentaire qui commence par ';'.
Ce que je fais c'est que je crée un objet Scanner et je change les délimiteurs avec la méthode useDelimiter. Voici mon code qui n'ignore pas les commentaires :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| public static TotalOrderConstructor<String> load(File file) throws FileNotFoundException, IOException {
Scanner s = null;
try {
s = new Scanner(new BufferedReader(new FileReader(file))).useDelimiter("\\p{javaWhitespace}|(;.*$)");
System.out.println(s.delimiter()); // test
while (s.hasNext()) {
String next = s.next();
System.out.println(next);
}
} finally {
if (s != null)
s.close();
}
// TODO Création de l'ordre...
return null;
} |
J'ai consulté la doc Java sur la classe Pattern. J'ai remarqué un champ COMMENTS qui ignore les # jusqu'en fin de ligne mais je n'ai pas réussit à l'utiliser. J'ai essayé comme ça (en paramètre de useDelimiter):
Pattern.compile("\\p{javaWhitespace}", Pattern.COMMENTS)
ou comme ceci :
Pattern.compile("\\p{javaWhitespace}|(?x)")
ou encore :
"\\p{javaWhitespace}|(;[^/n]*$)"
mais ça ne marche pas.
J'utilise Java 6 sous l'environnement de développement Eclipse.
Je perd trop de temps sur ce détail.
Merci d'avance pour vos réponse.
Partager