【发布时间】:2019-07-29 10:15:00
【问题描述】:
我正在尝试在字符串中搜索子字符串并替换它。我正在使用
String p= "+ 0.0";
但是这一行给了我一个悬空的元字符错误。我已经尝试过对此进行类型转换,但它仍然不起作用。我该如何解决这个问题?
我想做以下事情
if(s.containts(p)){ //s is a given string
s.replaceAll(p,"");
}
在相关说明中,
s.containts("+ 0.0")) 不会引发悬空元字符错误,但
s.replaceAll("+ 0.0",""); 抛出错误。
这是有原因的吗?
【问题讨论】:
-
那么你到底在用那个
p变量做什么,是你最终在替换过程中用作正则表达式的那个吗?那么这与这里的问题基本相同,stackoverflow.com/questions/917822 -
显然您正在执行正则表达式匹配操作。所以你需要了解the syntax,引用元字符或只使用
Pattern.quote...如果你使用String.replaceAll(String,String),请考虑使用String.replace(CharSequence,CharSequence)。 -
显而易见的使用方法是
replace,它不会产生“悬空元字符”错误。显然你使用的是不同的东西,虽然你还没有发布minimal reproducible example。
标签: java string metacharacters