[英]How do I replace the '|' character in a string in java?
我在一個程序中遇到一個奇怪的問題,我只想替換每次出現的“ ||” 在字符串中使用“ OR”,但是由於某種原因,它用“ OR”替換每個空格,是“ |” 某種逃脫角色或其他東西?
我一直在用這句話來做
ans = ans.replaceAll("||", "OR");
有誰知道發生了什么事或我該如何解決?
replaceAll
使用正則表達式語法和正則表達式|
是代表“ OR
運算符的運算符,表示"||"
被解釋為正則表達式為:
""
OR ""
OR ""
-空字符串或空字符串或空字符串
如果要更改|
轉換為文字,您需要通過在其前面添加\\
來對其進行轉義(在字符串\\
中必須寫為"\\\\"
)。
但是為了避免這種混亂,您可以使用replace
代替replaceAll
,這將為您進行轉義。
所以代替
ans = ans.replaceAll("||", "OR");
只需使用
ans = ans.replace("||", "OR");
您可以在第一個參數中使用不使用正則表達式的replace
ans = ans.replace("||", "OR");
replaceAll
函數使用正則表達式來匹配字符。 由於|
是regex中的特殊字符,您需要轉義|
正則表達式中的符號以匹配文字|
符號。
ans = ans.replaceAll("\\|", "OR");
這將替換所有|
帶有OR
符號。
對於兩個管道符號。
ans = ans.replaceAll("\\|\\|", "OR");
這將替換每兩個管道符號||
與OR
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.