如何在java中用\”替换字符串中的“(双引号)

0sgqnhkj  于 2023-04-28  发布在  Java
关注(0)|答案(6)|浏览(186)

我有一个值为' "value1" '的字符串变量strVar,我想用' \" '替换值中的所有双引号。所以替换后的值看起来像' \"value1\" '
如何在java中做到这一点?请帮帮我。

fdx2calv

fdx2calv1#

您正在寻找

str = str.replace("\"", "\\\"");

DEMO
我会避免使用replaceAll,因为它使用了你不需要的正则表达式语法,这会使事情复杂化,因为\也是正则表达式中的特殊字符:

  • target描述要替换的 * 什么 *,
  • replacement(其中\是用于转义其他特殊字符$的特殊字符)。

换句话说,要创建表示\replacement,我们需要用另一个\(如\\)转义\
但这并不是结束,因为\也是String文字中的特殊字符-例如,我们可以使用它来转义"(如\")或创建特殊字符(如制表符"\t")。
因此,为了在String literal中表示\,我们还需要将其转义为另一个\,如"\\"
这意味着,要在replacement中表示\,我们需要转义两次:

  • 在正则表达式语法中,\\-〉\
  • 一次在字符串文字"\\\\"-〉\\

因此,使用replaceAll的代码可能如下所示:

str = str.replaceAll("\"", "\\\\\""); 
//replacement contains `\\\\` to represent `\`, and `\"` to represent `"`

或者如果我们想让regex引擎为我们处理转义:

str = str.replaceAll("\"", Matcher.quoteReplacement("\\\""));

使用replace方法,我们不需要担心正则表达式的语法,并且可以只关注简单的文本。因此,要创建字符串文字,表示\后跟",我们只需要"\\\"

nzk0hqpo

nzk0hqpo2#

实际上是:strVar.replaceAll("\"", "\\\\\"");

ycl3bljg

ycl3bljg3#

例如,取一个结构如下的字符串--〉〉〉

String obj = "hello"How are"you";

你想用空值替换所有的双引号,或者换句话说,如果你想修剪所有的双引号。
就这样做

String new_obj= obj.replaceAll("\"", "");
mtb9vblg

mtb9vblg4#

字符串的格式为双引号。您所拥有的是单引号,用于char s。你想要的是这个:
String foo = " \"bar\" ";

nafvub8i

nafvub8i5#

这应该给予你你想要的;

System.out.println("'\\\" value1 \\\"'");
hiz5n14c

hiz5n14c6#

替换双引号

str=change condition to"or"      

str=str.replace("\"", "\\"");

替换后:将条件更改为“或”

替换单引号

str=change condition to'or'      

str=str.replace("\'", "\\'");

替换后:将条件更改为'或'

相关问题