Scanner de reel, Delimiter et Locale en java
Résolu
alstavista
-
alstavista -
alstavista -
Bonjour,
je suis actuellement en iut informatique et je travaille sur les Scanner, j'essaye de créer une méthode pour lire un réel avec une virgule c'est à dire par exemple 14,2 et non 14.2
De plus je veux m'arrêter au premier . rencontré...
J'ai donc codé cette méthode :
Mais à la trace d'exécution, j'ai "null" si je tape "14,2."
La question est la suivante, qu'est-ce que j'ai oublié, qu'est ce qui ne va pas dans mon programme?..(J'ai beau chercher, je ne trouve pas..:( )
Merci d'avance pour vos réponses
je suis actuellement en iut informatique et je travaille sur les Scanner, j'essaye de créer une méthode pour lire un réel avec une virgule c'est à dire par exemple 14,2 et non 14.2
De plus je veux m'arrêter au premier . rencontré...
J'ai donc codé cette méthode :
import java.util.Scanner; import java.util.Locale; public static String lire_Reel_point(){ Scanner sc = new Scanner(System.in); String str = ""; try{ sc.useLocale(Locale.FRANCE); sc.useDelimiter("."); double nbr = sc.nextDouble(); str += nbr; } catch(Exception e){ return null; } sc.close(); return str; }
Mais à la trace d'exécution, j'ai "null" si je tape "14,2."
La question est la suivante, qu'est-ce que j'ai oublié, qu'est ce qui ne va pas dans mon programme?..(J'ai beau chercher, je ne trouve pas..:( )
Merci d'avance pour vos réponses
A voir également:
- Scanner de reel, Delimiter et Locale en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Scanner qr code pc - Guide
- Ip locale - Guide
- Eclipse java - Télécharger - Langages
1 réponse
A priori ton useLocale(Locale.FRANCE) est inutile vu que c'est la valeur par défaut...
Le problème vient que useDelimiter prend en paramètre un Pattern, et que le point est une instruction réservée, il faut donc les échapper :
Le problème vient que useDelimiter prend en paramètre un Pattern, et que le point est une instruction réservée, il faut donc les échapper :
sc.useDelimiter("\\.");
alstavista
merci pour cette réponse rapide ^^, je vais tester ça tout de suite...
alstavista
merci, ça marche nickel !! (comme quoi c'est souvent des petits trucs qui posent probleme)