我该如何在Java中替换字符串?
例如:
String a = "adf�sdf";
如何替换和避免特殊字符?
你可以使用String#replaceAll()
方法,将模式[^\\x20-\\x7e]
替换为空字符来消除所有在可打印 ASCII 范围之外的字符:
a = a.replaceAll("[^\\x20-\\x7e]", "");
但这并没有真正解决你的实际问题,它更像是一个变通方法。根据给定的信息很难确定这个问题的根本原因,但阅读这些文章中的任意一篇都应该会有所帮助:
\p{Cntrl}
。然后您只需使用以下代码:stringWithSpecialCharcters.replaceAll("\\p{Cntrl}", replacement);
您可以使用Unicode转义序列(例如\u201c
[一个左花括号])来“避免”不能直接在源文件编码中使用的字符(默认为平台的默认编码,但您可以使用-encoding
参数更改它到javac
)。
native2ascii
,天哪,那是过去的回忆)无论如何,谢谢,即使在2010年之前的信息也显然是错的! - T.J. Crowder