Строка Unicode удалить символ из строки - PullRequest
9 голосов
/ 14 декабря 2011

У меня есть строка, отформатированная с помощью экземпляра NumberFormat.Когда я отображаю символы строки, у меня есть неразрывный пробел (гекса код: A0 и юникод 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 ]

42 голосов
/ 14 декабря 2011

Символ Unicode \u0160 не является неразрывным пробелом.После \ u должно быть шестнадцатеричное представление символа, а не десятичное, поэтому Юникод для неразрывного пробела равен \u00A0.Попробуйте использовать:

string = string.replace("\u00A0","");
4 голосов
/ 14 декабря 2011
String string = "89774lf&933 k880990";

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

System.out.println(string);

ВЫВОД:

89774933880990

Это исключит все char, кроме digits.

1 голос
/ 14 декабря 2011

Это работает как есть.

public static void main(String[] args) {
    String string = "hi\u0160bye";
    System.out.println(string);
    string = string.replaceAll("\u0160", "");
    System.out.println(string);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...