我有一个用 NumberFormat 实例格式化的字符串。当我显示字符串的字符时,我有一个不间断的空格(十六进制代码:A0 和 unicode 160)。我怎样才能从我的字符串中删除这个字符。
我尝试了 string = string.replaceAll("\u0160", "");
和 string = string.replaceAll("0xA0", "")
,都没有工作。
String string = ((JTextField)c)getText();
string = string.replace("\u0160", "");
System.out.println("string : " string);
for(int i = 0; i < string.length; i++) {
System.out.print("char : " + string.charAt(i));
System.out.printf("Decimal value %d", (int)string.charAt(i));
System.out.println("Code point : " + Character.codePointAt(string, i));
}
输出仍然包含一个空白,十进制值为 160,代码点为 160。
最佳答案
Unicode 字符 \u0160
不是不间断空格。在\u 之后必须是字符的十六进制表示而不是十进制,因此不间断空格的 unicode 是 \u00A0
。尝试使用:
string = string.replace("\u00A0","");
关于java - 字符串 Unicode 从字符串中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8501072/