我想删除字符“|”使用String#replaceAll()
方法。
但第一个参数是识别正则表达式元字符。
我尝试使用转义字符replaceAll("\|", "");
,但无法编译。
有没有办法删除或替换“|” Java的字符?
答案 0 :(得分:8)
使用|
时,您需要双倍转义replaceAll()
,例如:
myString.replaceAll("\\|", "");
这是因为你的字符串实际上被解析两次,首先作为文字字符串然后作为正则表达式。因此,当您从"\\|"
开始时,第一个解析为您提供了一个\|
的文字字符串,然后正则表达式解析器将其识别为|
。在你习惯它之前,这可能有点令人困惑。
答案 1 :(得分:3)
正确的答案是,不要使用replaceAll()
(替换正则表达式),使用replace()
只替换一个字符:
replace("|", "");
fyi,尽管方法名称中没有“all”,但实际上确实替换了指定字符的所有实例。
答案 2 :(得分:1)
此外,这也是一项工作:
String test = "Hello | Hi | Test";
System.out.println(test.replace("|", ""));
String replace method是一个有用的工具。无需使用正则表达式。