3 votes

Vérifiez si le séparateur de groupe est un espace.

J'essaie de vérifier si un séparateur de groupe ( char ) est un espace ou non. C'est le cas pour la locale française mais mon test imprime toujours false .

DecimalFormat formatter = (DecimalFormat) DecimalFormat.getInstance(Locale.forLanguageTag("fr"));
char ch = formatter.getDecimalFormatSymbols().getGroupingSeparator();
System.out.println(ch == ' '); // false
System.out.println(Character.isWhitespace(ch)); // false

6voto

Andreas Brunnet Points 677

Le symbole unicode que vous recevez n'est pas un espaces blancs normaux . C'est un espace sans rupture . Votre char a la représentation entière de 160 no 32 . Pour vérifier que vous devez utiliser :

Character.isSpaceChar(ch);

Cette méthode vérifie si un caractère est un espace selon la norme Unicode.

La méthode suivante vérifie si un caractère est un espace selon la spécification Java.

Character.isWhitespace(ch);

Une description détaillée des critères peut être trouvée dans les documentations.

0voto

Guenther Points 1693

Le caractère de regroupement n'est pas l'espace, mais 160. Cela donnera vrai et vrai

    DecimalFormat formatter = (DecimalFormat) DecimalFormat.getInstance(Locale.forLanguageTag("fr"));
    char ch = formatter.getDecimalFormatSymbols().getGroupingSeparator();
    System.out.println(ch == 160); 
    System.out.println(Character.isSpaceChar(ch));

0voto

C'est un espace insécable

getGroupingSeparator() retourne le non-breaking-space. Vous pouvez donc le vérifier avec l'unicode spécifique du non-breaking-space.

 public static void main(String[] args) {
    DecimalFormat formatter = (DecimalFormat) DecimalFormat.getInstance(Locale.forLanguageTag("fr"));
    char ch = formatter.getDecimalFormatSymbols().getGroupingSeparator();
    System.out.println(formatter.getDecimalFormatSymbols().getGroupingSeparator() == '\u00A0'); // true
    System.out.println(ch == ' '); // false
    System.out.println(Character.isWhitespace(ch)); // false
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X