заменить специальные символы в строке в Java - PullRequest
5 голосов
/ 09 апреля 2010

Я хочу знать, как заменить строку в Java.

* 1003 Е.Г. *

String a = "adf�sdf";

Как я могу заменить и избежать специальных символов?

Ответы [ 4 ]

14 голосов
/ 09 апреля 2010

Вы можете избавиться от всех символов за пределами диапазона печати ASCII , используя String#replaceAll(), заменив шаблон [^\\x20-\\x7e] пустой строкой:

a = a.replaceAll("[^\\x20-\\x7e]", "");

Но это на самом деле не решает вашу актуальную проблему. Это скорее обходной путь. При наличии данной информации трудно определить причину этой проблемы, но чтение любой из этих статей должно очень помочь:

2 голосов
/ 04 мая 2010

Предполагая, что вы хотите удалить все специальные символы, вы можете использовать класс символов \p{Cntrl} Тогда вам нужно всего лишь использовать следующий код:

stringWithSpecialCharcters.replaceAll("\\p{Cntrl}", replacement);
2 голосов
/ 09 апреля 2010

Трудно ответить на вопрос, не зная больше контекста.

Как правило, у вас могут быть проблемы с кодировкой. См. Абсолютный минимум, который должен знать каждый разработчик программного обеспечения (...) о юникоде и наборах символов для ознакомления с кодировками символов.

0 голосов
/ 09 апреля 2010

Вы можете использовать escape-последовательности Юникода (например, \u201c [открывающая фигурная кавычка]), чтобы «избежать» символов, которые нельзя напрямую использовать в кодировке исходного файла (по умолчанию используется кодировка по умолчанию для вашей платформы). , но вы можете изменить его с параметром -encoding на javac).

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