我是Java的新手,正在寻找一个优化的代码来查找某些字符并将其替换为另一个字符。
我可以得到的可能的字符串是,
ABC-2233JDK_KD&ERF
PQR-422KF@FG_344GG
XYZ-99848^KDF_FDFG
字符串中允许的字符是字母数字和" - "和" _"
除了这些之外的任何东西都需要用" - "
替换例如,上面的第一个字符串将成为
ABC-2233JDK_KD-ERF
我想出了一个RegEx来查找字符串以外的字符。
^[a-zA-Z0-9_-]+\$
是否有一种简单的方法可以在Java中替换字符串中的无效字符?
这里的无效字符除了字母数字,短划线(" - ")和下划线(" _")之外的任何其他字符。
答案 0 :(得分:3)
你可以使用:
String repl = input.replaceAll("[^\\w-]+", "");
^
否定整个字符类,\w
包含[a-zA-Z0-9_]
,我们会根据您的要求在此处添加连字符。