Как обнаружить и заменить непечатаемые символы в строке с помощью Java?

StackOverflow https://stackoverflow.com/questions/2485636

Вопрос

Например, у меня есть такая строка:abc123[*]xyz[#]098[~]f9e

[*], [#] и [~] представляют собой три разных непечатаемых символа.Как я могу заменить их на «X» в Java?

Откровенный

Это было полезно?

Решение

Я не уверен, что понимаю ваши вопросы.Если вы сможете сформулировать это лучше, я думаю, что простая замена регулярного выражения может быть всем, что вам нужно.

String r = s.replaceAll(REGEX, "X");

REGEX зависит от того, что вам нужно:

"\\*|#|~"   : matches only '*', "#', and '~'
"[^\\d\\w]" : matches anything that is neither a digit nor a word character
"\\[.\\]"   : matches '[' followed by ANY character followed by ']'
"(?<=\\[).(?=\\])" : matches only the character surrounded by '[' and ']'

Другие советы

Это ТАК вопросы и ответы показывает способ проверить в Java, можно ли напечатать данный символ.

Как вы наверняка знаете, в Java вы не можете напрямую изменить строку:скорее, ты создаешь новый Строитель строк объект, инициализированный строкой, измените объект построителя строк (например,с setCharAt вызовы, в которых вышеупомянутый метод показывает, что символ по этому индексу не подлежит печати), и, наконец, вызовите toString в объекте построителя строк, чтобы создать новый строковый объект, который вы можете вернуть из своего метода или присвоить тому же идентификатору, который вы использовали для ссылки на исходную строку, и т. д. и т. д., в зависимости от ваших конкретных потребностей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top