Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中用引号替换子字符串?_Java - Fatal编程技术网

如何在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\执行任何操作。该\在字符串和正则表达式中都是转义字符