如何更换' |' java中的字符串中的字符?

时间:2015-04-19 14:31:06

标签: java string

我的一个程序中有一个奇怪的问题,我只是想替换" ||"用" OR"在一个字符串中,但由于某种原因,它用&#34替换每个空格; OR"," |"某种逃避性格或某事?

我一直在用这句话来做这件事

ans = ans.replaceAll("||", "OR");

有谁知道发生了什么或我如何解决这个问题?

3 个答案:

答案 0 :(得分:5)

replaceAll使用正则表达式语法,而正则表达式|是表示OR操作的运算符,这意味着"||"被解释为正则表达式:

"""""" - 空字符串或空字符串或空字符串

如果您想将|更改为文字,则需要通过在其之前添加\来转义它(在字符\中需要将其写为"\\"

但是为了避免这种混淆,您可以使用replace代替replaceAll,这将为您逃避部分。

所以而不是

ans = ans.replaceAll("||", "OR");

只需使用

ans = ans.replace("||", "OR");

答案 1 :(得分:4)

您可以使用replace在其第一个参数

中不使用正则表达式
ans = ans.replace("||", "OR");

答案 2 :(得分:1)

replaceAll函数使用正则表达式来匹配字符。由于|是正则表达式中的特殊字符,因此您需要在正则表达式中转义|符号以匹配文字|符号。

ans = ans.replaceAll("\\|", "OR");

这会将每个|符号替换为OR

对于两个管道符号。

ans = ans.replaceAll("\\|\\|", "OR");

这将用||

替换每两个管道符号OR