Как удалить градусы Цельсия из строки (Java) - PullRequest
0 голосов
/ 31 августа 2011

Я уже несколько часов пытаюсь удалить символ градуса Цельсия из следующей строки. Я просмотрел предыдущие посты и вижу, что / u2103 является представлением юникода для него. Несмотря на попытки удалить эту строку, мне все равно не повезло. Вот что у меня сейчас:

String temp = "Technology=Li-poly;Temperature=23.0 <degree symbol>C;Voltage=3835";
StringBuilder filtered = new StringBuilder(temp.length()); 
    for (int i = 0; i < temp.length(); i++) {
char test = temp.charAt(i);
if (test >= 0x20 && test <= 0x7e) {
    filtered.append(test);
}
}

temp = filtered.toString();

temp.replaceAll(" ", "%20");

Результирующая строка выглядит так: Технология = Li-poly; Температура = 23,0 C ;

Я тоже пробовал

temp.replaceAll("\\u2103", "");
temp.replaceChar((char)0x2103, ' ');

Но ничего из этого не работает.

Моя текущая проблема заключается в том, что функция фильтрации строки оставляет пустое пространство, но вызов replaceAll ("", "% 20"), похоже, не распознает это конкретное пространство. ReplaceAll заменит другие пробелы на% 20.

Ответы [ 2 ]

4 голосов
/ 31 августа 2011

Это одна проблема:

temp.replaceAll(" ", "%20");

Вы звоните replaceAll, но никогда не используете результат.Строки являются неизменяемыми - любой метод, который выглядит как будто он изменяет содержимое, на самом деле возвращает другую строку в результате.Вы хотите:

temp = temp.replaceAll(" ", "%20");

Сказав это, неясно, почему вы пытаетесь заменить пробел вообще, и что не так с вашей полученной строкой.

Вы получилита же проблема с вашими другими вызовами temp.replaceAll и temp.replaceChar.

Ваша попытка заменить персонажа напрямую потерпит неудачу, поскольку вы избегаете обратной косой черты - вы действительно хотите:

temp = temp.replace("\u2103", "");

Обратите внимание на использование replace вместо replaceAll - последний использует регулярные выражения, которые здесь вообще не нужны.

0 голосов
/ 31 августа 2011

Возможно, вы могли бы использовать функцию Character.isWhiteSpace () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...