我在其中一個程序中出現了一個奇怪的問題,我只想替換每個出現的「||」在字符串中帶有「OR」,但由於某種原因,它用「OR」替換每個空格,是「|」某種逃生角色或某種東西?如何替換'|'在java中的字符串中的字符?
我一直在使用這個語句來做到這一點
ans = ans.replaceAll("||", "OR");
有誰知道發生了什麼事或我怎麼能解決這個問題?
我在其中一個程序中出現了一個奇怪的問題,我只想替換每個出現的「||」在字符串中帶有「OR」,但由於某種原因,它用「OR」替換每個空格,是「|」某種逃生角色或某種東西?如何替換'|'在java中的字符串中的字符?
我一直在使用這個語句來做到這一點
ans = ans.replaceAll("||", "OR");
有誰知道發生了什麼事或我怎麼能解決這個問題?
replaceAll
使用正則表達式語法和正則表達式|
是運營商代表OR
操作,這意味着"||"
被解釋爲正則表達式:
""
或""
或""
- 空字符串或者爲空或空字符串
如果你想改變|
成文字,你需要通過之前加入\
(字符串逃脫它例如\
需要寫入如"\\"
)。
但爲了避免這種混淆,你可以使用replace
而不是replaceAll
這將爲你逃避一部分。
所以不是
ans = ans.replaceAll("||", "OR");
ans = ans.replace("||", "OR");
replaceAll
函數使用正則表達式來匹配字符。由於|
是正則表達式中的特殊字符,因此您需要在正則表達式中跳過|
符號以匹配文字|
符號。
ans = ans.replaceAll("\\|", "OR");
這將OR
取代每|
符號。
對於兩個管道符號。
ans = ans.replaceAll("\\|\\|", "OR");
這將替換每兩個管道符號||
與OR
你可以使用replace
其犯規的使用正則表達式中的第一個參數
ans = ans.replace("||", "OR");
你學到新的東西每天簡單地使用,多謝 – TehDude
@TehDude歡迎您:) – Pshemo
@TehDude因爲你似乎很新的堆棧溢出你應該閱讀[接受回答機制](http://meta.stackexchange.com/a/5235/186652)。你也應該接受這個答案:http://stackoverflow.com/a/29335208/1393766因爲你自己說這是對你以前的問題的完美解決方案。 – Pshemo