检查分组分隔符是否为 space
Check if a grouping separator is a space
我正在尝试检查分组分隔符 (char
) 是否为 space。法语语言环境就是这种情况,但我的测试总是打印 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
您收到的 unicode 符号不是普通白色space。这是一个 不间断 space。您的 char 具有 160 而非 32 的整数表示。
要检查您是否应该使用:
Character.isSpaceChar(ch);
该方法根据 unicode 标准检查字符是否为 space。
以下方法根据 Java 规范检查字符是否为 space。
Character.isWhitespace(ch);
可以在文档中找到标准的详细说明。
分组字符不是space,而是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));
不间断space
getGroupingSeparator()
return不间断-space。所以你可以用特定的 non-breaking-space 的 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
}
我正在尝试检查分组分隔符 (char
) 是否为 space。法语语言环境就是这种情况,但我的测试总是打印 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
您收到的 unicode 符号不是普通白色space。这是一个 不间断 space。您的 char 具有 160 而非 32 的整数表示。 要检查您是否应该使用:
Character.isSpaceChar(ch);
该方法根据 unicode 标准检查字符是否为 space。
以下方法根据 Java 规范检查字符是否为 space。
Character.isWhitespace(ch);
可以在文档中找到标准的详细说明。
分组字符不是space,而是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));
不间断space
getGroupingSeparator()
return不间断-space。所以你可以用特定的 non-breaking-space 的 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
}