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

问题描述 投票:0回答:6

我有字符串变量 strVar,值为

' "value1" '
,我想用
' \" '
替换值中的所有双引号。所以重置后的价值看起来像
' \"value1\" '

如何在 Java 中执行此操作? 请帮助我。

java string replace str-replace
6个回答
56
投票

您正在寻找

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

演示

我会避免使用

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

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

换句话说,要创建代表

replacement
\
,我们需要用另一个
\
来逃避那个
\
,比如
\\

但这还没有结束,因为

\
也是字符串文字中的特殊字符 - 例如我们可以使用转义
"
\"
或创建特殊字符如制表
"\t"
。所以为了在字符串文字中表示
\
,我们还需要用另一个
\
转义它,比如
"\\"
.

这意味着要在替换中表示

\
,我们需要转义它两次:

  • 在正则表达式语法中一次替换
    \\
    ,
  • 和一次在字符串文字中
    "\\\\"
    (代表
    \\
    )。

所以使用

replaceAll
的代码看起来像:

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

或者如果我们想让正则表达式引擎为我们处理转义:

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

使用

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


11
投票

实际上是:

strVar.replaceAll("\"", "\\\\\"");


5
投票

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

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

你想用空白值替换所有双引号,或者换句话说,如果你想修剪所有双引号。

就这样做,

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

0
投票

字符串用双引号格式化。你有的是单引号,用于

char
s。你要的是这个:

String foo = " \"bar\" ";


0
投票

这应该给你你想要的;

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

0
投票

替换双引号

str=change condition to"or"      

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

替换后:将条件更改为\"or\"

替换单引号

str=change condition to'or'      

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

替换后:将条件更改为\'or\'

© www.soinside.com 2019 - 2024. All rights reserved.