我的一个程序中有一个奇怪的问题,我只是想替换" ||"用" OR"在一个字符串中,但由于某种原因,它用&#34替换每个空格; OR"," |"某种逃避性格或某事?
我一直在用这句话来做这件事
ans = ans.replaceAll("||", "OR");
有谁知道发生了什么或我如何解决这个问题?
答案 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