如何在Java中用引号替换子字符串?
我有一个字符串:如何在Java中用引号替换子字符串?,java,Java,我有一个字符串: str="{\"type\":\"Polygon\",\"coordinates\":[[[60.677938980978993,56.834449959232998], [60.680103564162927,56.834305549577387],[60.679971577383398,56.833005837614643], [60.679813193248009,56.832846980836457],[60.678546120164683,56.83276033140
str="{\"type\":\"Polygon\",\"coordinates\":[[[60.677938980978993,56.834449959232998],
[60.680103564162927,56.834305549577387],[60.679971577383398,56.833005837614643],
[60.679813193248009,56.832846980836457],[60.678546120164683,56.832760331400671],
[60.678229351893869,56.831850500219574],[60.677622212708137,56.831893826015182],
[60.676830292031028,56.832139337910085],[60.67624955020122,56.832818097713471],
[60.676275947556981,56.833655699235088],[60.676328742268893,56.834724336044253],
[60.677411033860842,56.834695454369324],[60.677490225928629,56.834478841097273],
[60.677938980978993,56.834449959232998]]]}"
"{\"type\":\"Polygon\",\"coordinates\":[[[60.677938980978993,56.834449959232998],
[60.680103564162927,56.834305549577387],[60.679971577383398,56.833005837614643],
[60.679813193248009,56.832846980836457],[60.678546120164683,56.832760331400671],
[60.678229351893869,56.831850500219574],[60.677622212708137,56.831893826015182],
[60.676830292031028,56.832139337910085],[60.67624955020122,56.832818097713471],
[60.676275947556981,56.833655699235088],[60.676328742268893,56.834724336044253],
[60.677411033860842,56.834695454369324],[60.677490225928629,56.834478841097273],
[60.677938980978993,56.834449959232998]]]"
现在我想删除所有\
:
str.replaceAll("\\","");
和获取错误:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
好的,我说。另一个愿望是删除第一个和最后一个引号:
str.substring(str.indexOf("\""),str.lastIndexOf("\""));
我得到一个字符串:
str="{\"type\":\"Polygon\",\"coordinates\":[[[60.677938980978993,56.834449959232998],
[60.680103564162927,56.834305549577387],[60.679971577383398,56.833005837614643],
[60.679813193248009,56.832846980836457],[60.678546120164683,56.832760331400671],
[60.678229351893869,56.831850500219574],[60.677622212708137,56.831893826015182],
[60.676830292031028,56.832139337910085],[60.67624955020122,56.832818097713471],
[60.676275947556981,56.833655699235088],[60.676328742268893,56.834724336044253],
[60.677411033860842,56.834695454369324],[60.677490225928629,56.834478841097273],
[60.677938980978993,56.834449959232998]]]}"
"{\"type\":\"Polygon\",\"coordinates\":[[[60.677938980978993,56.834449959232998],
[60.680103564162927,56.834305549577387],[60.679971577383398,56.833005837614643],
[60.679813193248009,56.832846980836457],[60.678546120164683,56.832760331400671],
[60.678229351893869,56.831850500219574],[60.677622212708137,56.831893826015182],
[60.676830292031028,56.832139337910085],[60.67624955020122,56.832818097713471],
[60.676275947556981,56.833655699235088],[60.676328742268893,56.834724336044253],
[60.677411033860842,56.834695454369324],[60.677490225928629,56.834478841097273],
[60.677938980978993,56.834449959232998]]]"
只删除了最后一个}
我在这段代码中做错了什么?您是否尝试过
str.replaceAll(“\\\\”,”)代码>?
(请参阅)您是否尝试过str.replaceAll(“\\\\”,”)代码>?
(请参阅)使用其中一种
str.replaceAll("\\.", "");
或
当您键入“\\”
时,这实际上是一个反斜杠(由于转义Java字符串中的特殊字符)
正则表达式也使用反斜杠作为特殊字符,您需要使用另一个反斜杠或使用点(.
来转义它。因此,最后,您需要将“\\\\”
或“\\\。”
作为模式来匹配单个反斜杠。使用其中一个
str.replaceAll("\\.", "");
System.out.println(str.replaceAll("\\\\", ""));
或
当您键入“\\”
时,这实际上是一个反斜杠(由于转义Java字符串中的特殊字符)
正则表达式也使用反斜杠作为特殊字符,您需要使用另一个反斜杠或使用点(.
来转义它,所以最后,您需要将“\\\\”
或“\\\\。”
作为模式来匹配单个反斜杠
System.out.println(str.replaceAll("\\\\", ""));
输出:
{“类型”:“多边形”,“坐标”:[[60.677938980978993,56.834449959232998],
[60.680103564162927,56.834305549577387],[60.679971577383398,56.833005837614643],[60.679813193248009,56.832846980836457],[60.678546120164683,56.832760331400671],
[60.678229351893869,56.831850500219574],[60.677622212708137,56.831893826015182],
[60.676830292031028,56.832139337910085],[60.67624955020122,56.832818097713471],
[60.676275947556981,56.833655699235088],[60.676328742268893,56.834724336044253],
[60.677411033860842,56.834695454369324],[60.67749022592629,56.834478841097273],[60.677938980978993,56.834449959232998]]
输出:
{“类型”:“多边形”,“坐标”:[[60.677938980978993,56.834449959232998],
[60.680103564162927,56.834305549577387],[60.679971577383398,56.833005837614643],[60.679813193248009,56.832846980836457],[60.678546120164683,56.832760331400671],
[60.678229351893869,56.831850500219574],[60.677622212708137,56.831893826015182],
[60.676830292031028,56.832139337910085],[60.67624955020122,56.832818097713471],
[60.676275947556981,56.833655699235088],[60.676328742268893,56.834724336044253],
[60.677411033860842,56.834695454369324],[60.67749022592629,56.834478841097273],[60.677938980978993,56.834449959232998]]
对你的案子很好
public String replace(CharSequence target,CharSequence replacement)
取代
此字符串的子字符串,该字符串将文字目标序列与指定的文字替换序列相匹配
String s = "abc" + "\\" + "def";
System.out.println(s);
它会打印出以下内容-
abc\def
\是字符串和正则表达式中的转义字符
对你的案子很好
public String replace(CharSequence target,CharSequence replacement)
取代
此字符串的子字符串,该字符串将文字目标序列与指定的文字替换序列相匹配
String s = "abc" + "\\" + "def";
System.out.println(s);
它会打印出以下内容-
abc\def
\是字符串和正则表达式中的转义字符 我认为\\\\->\\因为它没有帮助。你能提供一段源代码吗?使用您的示例,我不知道您的字符串是否真的包含反斜杠,或者它们是否用于转义Java字符串中的引号……我认为\\\\->\\n因为这没有帮助。您能提供一段源代码吗?使用您的示例,我不知道您的字符串是否真的包含反斜杠,或者它们是否用于转义Java字符串中的引号……我认为\\\\->\\becouse它没有帮助我认为\\\\->\\becouse它没有帮助help@KliverMaxstr.replaceAll();接受正则表达式。仅尝试str.replace(“\\”,”);该函数适用于所有字符序列,但我不能仅对/
@KliverMax\执行任何操作。该\在字符串和正则表达式中都是转义字符。让我们@KliverMax str.replaceAll();接受正则表达式。仅尝试str.replace(“\\”,”);该函数适用于所有字符序列,但我不能仅对/
@KliverMax\执行任何操作。该\在字符串和正则表达式中都是转义字符