String Unicode从字符串中删除char

时间:2011-12-14 07:55:24

标签: java string format

我有一个使用NumberFormat实例格式化的字符串。当我显示字符串的字符时,我有一个不间断的空格(hexa代码: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的空格。

3 个答案:

答案 0 :(得分:41)

unicode字符\u0160不是一个不间断的空间。在\ u之后必须有十进制表示的字符而不是十进制,因此非中断空格的unicode是\u00A0。尝试使用:

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

答案 1 :(得分:4)

String string = "89774lf&933 k880990";

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

System.out.println(string);

输出:

89774933880990

它将消除char以外的所有digits

答案 2 :(得分:1)

这是按原样运作。

public static void main(String[] args) {
    String string = "hi\u0160bye";
    System.out.println(string);
    string = string.replaceAll("\u0160", "");
    System.out.println(string);
}