我有一个值为' "value1" '的字符串变量strVar,我想用' \" '替换值中的所有双引号。所以替换后的值看起来像' \"value1\" '如何在java中做到这一点?请帮帮我。
' "value1" '
' \" '
' \"value1\" '
fdx2calv1#
您正在寻找
str = str.replace("\"", "\\\"");
DEMO我会避免使用replaceAll,因为它使用了你不需要的正则表达式语法,这会使事情复杂化,因为\也是正则表达式中的特殊字符:
replaceAll
\
target
replacement
$
换句话说,要创建表示\的replacement,我们需要用另一个\(如\\)转义\。但这并不是结束,因为\也是String文字中的特殊字符-例如,我们可以使用它来转义"(如\")或创建特殊字符(如制表符"\t")。因此,为了在String literal中表示\,我们还需要将其转义为另一个\,如"\\"。这意味着,要在replacement中表示\,我们需要转义两次:
\\
"
\"
"\t"
"\\"
"\\\\"
因此,使用replaceAll的代码可能如下所示:
str = str.replaceAll("\"", "\\\\\""); //replacement contains `\\\\` to represent `\`, and `\"` to represent `"`
或者如果我们想让regex引擎为我们处理转义:
str = str.replaceAll("\"", Matcher.quoteReplacement("\\\""));
使用replace方法,我们不需要担心正则表达式的语法,并且可以只关注简单的文本。因此,要创建字符串文字,表示\后跟",我们只需要"\\\"。
replace
"\\\"
nzk0hqpo2#
实际上是:strVar.replaceAll("\"", "\\\\\"");
strVar.replaceAll("\"", "\\\\\"");
ycl3bljg3#
例如,取一个结构如下的字符串--〉〉〉
String obj = "hello"How are"you";
你想用空值替换所有的双引号,或者换句话说,如果你想修剪所有的双引号。就这样做
String new_obj= obj.replaceAll("\"", "");
mtb9vblg4#
字符串的格式为双引号。您所拥有的是单引号,用于char s。你想要的是这个:String foo = " \"bar\" ";
char
String foo = " \"bar\" ";
nafvub8i5#
这应该给予你你想要的;
System.out.println("'\\\" value1 \\\"'");
hiz5n14c6#
替换双引号
str=change condition to"or" str=str.replace("\"", "\\"");
替换后:将条件更改为“或”
替换单引号
str=change condition to'or' str=str.replace("\'", "\\'");
替换后:将条件更改为'或'
6条答案
按热度按时间fdx2calv1#
您正在寻找
DEMO
我会避免使用
replaceAll
,因为它使用了你不需要的正则表达式语法,这会使事情复杂化,因为\
也是正则表达式中的特殊字符:target
描述要替换的 * 什么 *,replacement
(其中\
是用于转义其他特殊字符$
的特殊字符)。换句话说,要创建表示
\
的replacement
,我们需要用另一个\
(如\\
)转义\
。但这并不是结束,因为
\
也是String文字中的特殊字符-例如,我们可以使用它来转义"
(如\"
)或创建特殊字符(如制表符"\t"
)。因此,为了在String literal中表示
\
,我们还需要将其转义为另一个\
,如"\\"
。这意味着,要在
replacement
中表示\
,我们需要转义两次:\\
-〉\
"\\\\"
-〉\\
中因此,使用
replaceAll
的代码可能如下所示:或者如果我们想让regex引擎为我们处理转义:
使用
replace
方法,我们不需要担心正则表达式的语法,并且可以只关注简单的文本。因此,要创建字符串文字,表示\
后跟"
,我们只需要"\\\"
。nzk0hqpo2#
实际上是:
strVar.replaceAll("\"", "\\\\\"");
ycl3bljg3#
例如,取一个结构如下的字符串--〉〉〉
你想用空值替换所有的双引号,或者换句话说,如果你想修剪所有的双引号。
就这样做
mtb9vblg4#
字符串的格式为双引号。您所拥有的是单引号,用于
char
s。你想要的是这个:String foo = " \"bar\" ";
nafvub8i5#
这应该给予你你想要的;
hiz5n14c6#
替换双引号
替换后:将条件更改为“或”
替换单引号
替换后:将条件更改为'或'