簡體   English   中英

如何替換“ |” Java字符串中的字符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM