Java 使用 replaceAll("+-", "-") 时出错
Java error while using replaceAll("+-", "-")
我正在尝试使用 String.replaceAll
,但出现错误:
这是我的代码:
public static String signSimplify (String str) {
String strr = str.replaceAll("--", "+");
String strr2 = strr.replaceAll("-+", "-");
String strr3 = strr2.replaceAll("+-", "-");
return strr3;
}
并且,在执行时,出现以下错误:
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
+-
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at fr.genius.main.Main.signSimplify(Main.java:108)
at fr.genius.main.Main.calcTrinome(Main.java:88)
at fr.genius.main.Main.main(Main.java:69)`
我不明白为什么我不能使用 replaceAll("+-", "-") 但当 + 和 - 反转时我可以。
使用以下技术进行替换:
String url="abc+-abc";
System.out.println(url.replaceAll("\+-", "-"));
replaceAll in Java 将要替换的文本视为正则表达式。您需要转义 +.
str.replaceAll("\+-", "-")
如果您不想或不需要正则表达式,只需使用 replace()
而不是 replaceAll()
,它会像您预期的那样工作。
我正在尝试使用 String.replaceAll
,但出现错误:
这是我的代码:
public static String signSimplify (String str) {
String strr = str.replaceAll("--", "+");
String strr2 = strr.replaceAll("-+", "-");
String strr3 = strr2.replaceAll("+-", "-");
return strr3;
}
并且,在执行时,出现以下错误:
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
+-
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at fr.genius.main.Main.signSimplify(Main.java:108)
at fr.genius.main.Main.calcTrinome(Main.java:88)
at fr.genius.main.Main.main(Main.java:69)`
我不明白为什么我不能使用 replaceAll("+-", "-") 但当 + 和 - 反转时我可以。
使用以下技术进行替换:
String url="abc+-abc";
System.out.println(url.replaceAll("\+-", "-"));
replaceAll in Java 将要替换的文本视为正则表达式。您需要转义 +.
str.replaceAll("\+-", "-")
如果您不想或不需要正则表达式,只需使用 replace()
而不是 replaceAll()
,它会像您预期的那样工作。