【问题标题】:Check if a grouping separator is a space检查分组分隔符是否为空格
【发布时间】:2016-08-12 08:27:09
【问题描述】:

我正在尝试检查分组分隔符 (char) 是否为空格。法语语言环境就是这种情况,但我的测试总是打印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

【问题讨论】:

  • 那是什么角色?
  • 我不知道,当我打印它或在调试中检查它时,它是一个空格。
  • 要查看 char 的 unicode 值,试试这个:stackoverflow.com/questions/2220366/…
  • 谢谢,一定会有所帮助

标签: java char locale separator


【解决方案1】:

您收到的 unicode 符号不是普通空格。这是一个不间断的空间。您的 char 具有 160 而不是 32 的整数表示形式。 要检查您是否应该使用:

Character.isSpaceChar(ch);

该方法根据 unicode 标准检查字符是否为空格。

以下方法根据 Java 规范检查字符是否为空格。

Character.isWhitespace(ch);

可以在文档中找到有关标准的详细说明。

【讨论】:

  • 哦,很好。你是怎么找到的?
  • @CharlesFollet:很简单:System.out.println((int)ch); 160 让我感到困惑,因为空格应该至少在 ASCII 范围内。所以我看了一下unicode表。也不知道之前有这样的空间。如果回答对你有帮助,请采纳
  • @CharlesFollet 你会接受这个答案,让其他人知道这有帮助吗?
【解决方案2】:

分组字符不是空格,而是160,这样会输出true和true

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

【讨论】:

    【解决方案3】:

    这是不间断的空间

    getGroupingSeparator()return 不间断空格。因此您可以使用特定的不间断空格 unicode 来检查它。

     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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多