簡體   English   中英

Java中的單引號替換

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

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