2

我想删除字符“|” 通过使用String#replaceAll()方法。但第一个参数是识别正则表达式元字符。

我尝试replaceAll("\|", "");使用转义字符,但无法编译。

有没有办法删除或替换“|” Java的字符?

4

3 回答 3

8

您需要|在使用时双重转义replaceAll(),例如:

myString.replaceAll("\\|", "");

这是因为您的字符串实际上被解析了两次,首先是作为文字字符串,然后是作为正则表达式。因此,当您从"\\|"第一个解析开始时,会为您提供一个文字字符串\|,然后正则表达式解析器将其识别为|. 在您习惯之前,这可能会有点令人困惑。

于 2012-09-20T06:10:03.420 回答
3

正确的答案是,不要使用replaceAll()(替换正则表达式),使用replace()它只是替换一个字符:

replace("|", "");

仅供参考,尽管方法名称中没有“all”,但实际上确实替换了指定字符的所有实例。

于 2012-09-20T06:17:46.357 回答
1

此外,这也可以完成工作:

String test = "Hello | Hi | Test";
System.out.println(test.replace("|", ""));

字符串替换方法在这里是一个有用的工具。无需使用正则表达式。

于 2012-09-20T06:17:38.107 回答