字符串 Unicode 从字符串中删除字符

2022-09-04 23:50:51

我有一个使用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 的空格。


答案 1

Unicode 字符不是不间断空格。在 \u 之后必须有字符的十六进制表示形式,而不是十进制,因此不换行空格的 unicode 是 。尝试使用:\u0160\u00A0

string = string.replace("\u00A0","");

答案 2
String string = "89774lf&933 k880990";

string = string.replaceAll( "[^\\d]", "" );

System.out.println(string);

输出:

89774933880990

它将消除除 .chardigits