我有一个大的json存储在一个字符串中。我想更改字符串的某些部分,但出现以下错误:
5/>(Pattern.java:3104)java.util.regex.Pattern.sequence(Pattern.java:2101)java.util.regex.Pattern.expr(Pattern.java:1964)java.util.regex.Pattern.compile(Pattern.java:1665)在java.util.regex.Pattern.(Pattern.java:1337)在java.util.regex.Pattern.compile(Pattern. java: 1022)在java. lang. String. replace eAll(String. java: 2162)在basari.流程. Msis dnProcess. setAllPropTypes(Msis dnProcess. java: 51)在testClass. Main Test. main(Main Test. java: 98)
我的代码:
String example = "deviceInfo":{"deviceBrand":"NOKIA","imei":"11111111","deviceModel":"6300","date":{"nil":"true"}}
example.replaceAll( "\"date\":{\"nil\":\"true\"}", "\"date\":\"2014-08-14T10:00:00.000+02:00\"");
正如异常所示,它试图将其解析为正则表达式,而不是纯文本。如果只想用另一个字符串替换某个字符串,请使用replace()
而不是replaceAll()
。
至于为什么会出现这种特殊的异常:{}
字符有特定的含义,用于表示重复(又称:某个正则表达式出现的次数)。在实际的正则表达式中,这应该是一个整数值,而不是字符串中提供的整数值。
在正则表达式中,{
和}
符号是有意义的。
使用:
example.replaceAll( "\"date\":\\{\"nil\":\"true\"\\}",
"\"date\":\"2014-08-14T10:00:00.000+02:00\""));
您可能正在寻找String#replace
,而不是replaceAll
(使用regex)。
出现这种异常是因为在正则表达式中,{…}
是一个量词。例如:
{1,3}
=1到3次{3,}
=3次或更多次{3}
=正好3次问题内容: 我试图写将接受的方法,检查是否有某些记号的情况下(例如,,等),并更换每个令牌与新的字符串,它是从获取。 例如,如果我将此方法传递给以下字符串: “现在的$ {fizz}母牛如何。$ {buzz}的形状奇怪的$ {foo}。” 并且如果该方法参考了以下内容: 那么结果字符串将是: “现在是棕色的母牛。纵火犯的脚怪异。” 这是我的方法: 运行此命令时,出现以下异常: 我为什么得到这个?
我想创建一个新列,并用和替换和不丢失的值。 我想要的: 这就是我所尝试的: 看来第二行不正确。 有什么建议吗?
请看下面的代码: 当我运行时,我得到以下异常: 线程“主”java.util.regex.PatternSyntaxException异常:指数4附近无与伦比的收盘“)” 0.3港元)预订:virginiawong@fahkco.com.hk4)FCR 根据我的理解,我必须对参数'(',')'进行转义,我试图这样做(看看代码中的注释部分)没有任何异常,但是我添加到字符串的换行符似乎没有出现。
问题内容: 谁能告诉我为什么我运行这种方法用符号替换值时为什么会遇到bouns异常之外的索引? 例如,我传递消息 我试图查看此论坛主题,但无法理解内容 http://www.coderanch.com/t/383666/java/java/String- replaceAll 问题答案: 这是特殊字符,您需要使用转义字符 试试这个 而且在您的代码中您试图用相同的内容替换内容没有意义 输出 更新资料
我是Java的新手,正在学习/尝试用流来理解系统。 在一个示例中,我有以下代码: 出于培训的目的,我开始用流重写一些旧方法(大多数是用for-loops)以获得更多的实践。但是这个小方法让我用javadocs(+Google)坚持了三次以上,我仍然不知道哪里出了问题--它甚至不能编译:/ 编辑(01.12.2020,10:13):我不得不编辑第一个代码段。返回语句错误(错别字……)