[英]Single quotes replace in Java
在Java中,我有:
String str = "Welcome 'thanks' How are you?";
我需要用\\'
替換str
的單引號,也就是說,當我打印str
我應該得到輸出為Welcome \\'thanks\\' How are you
。
看起來你可能想要這樣的東西:
String s = "Hello 'thanks' bye";
s = s.replace("'", "\\'");
System.out.println(s);
// Hello \'thanks\' bye
這使用String.replace(CharSequence, CharSequence)
方法進行字符串替換。 請記住, \\
是 Java 字符串文字的轉義字符; 也就是說, "\\\\'"
包含 2 個字符、一個反斜杠和一個單引號。
用
"Welcome 'thanks' How are you?".replaceAll("'", "\\\\'")
您需要在替換字符串中進行兩級轉義,一級用於 Java,一級用於正則表達式引擎。
這對我有用:
"Welcome 'thanks' How are you?".replaceAll("\\'", "\\\\'");
它打印:
Welcome \'thanks\' How are you?
如果你像我一樣試圖為 MySQL 轉義而遇到這個問題,你想添加第二個單引號來轉義:
str.replaceAll("\\'","\\'\\'")
這將打印:
Welcome ''thanks'' How are you?
我很困惑,我們會根據 Java 版本得到不同的結果嗎? 或者我們沒有在這里測試答案?
這是對我有用的方法:
str.replaceAll("'", "\\'")
和這個代碼(這是接受的答案)
str.replace("'", "\\'")
只更改第一個報價。
我的java -version
:
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.