Comment détecter et remplacer les caractères non-imprimables dans une chaîne en Java?
-
21-09-2019 - |
Question
Par exemple, j'ai une chaîne comme ceci: abc123 [*] xyz [#] 098 [~] F9E
[*], [#] et [~] représente 3 différents caractères non-imprimables. Comment puis-je les remplacer par « X » en Java?
Frank
La solution
Je ne sais pas si je comprends bien vos questions. Si vous pouvez le formuler mieux, je pense que le simple remplacement d'expression régulière peut être tout ce dont vous avez besoin.
String r = s.replaceAll(REGEX, "X");
REGEX dépend de ce que vous avez besoin:
"\\*|#|~" : 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 ']'
Autres conseils
Ce SO Q & A montre un moyen de tester, en Java, si un caractère donné est imprimable.
Comme vous le savez sûrement, en Java, vous ne pouvez pas modifier directement une chaîne: plutôt, vous faites un nouveau