【问题标题】:Dangling metacharacter Java [closed]悬空元字符Java [关闭]
【发布时间】: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",""); 抛出错误。

这是有原因的吗?

【问题讨论】:

标签: java string metacharacters


【解决方案1】:

转义+.,因为+. 是正则表达式的元字符。

String p= "\\+ 0\\.0";

【讨论】:

  • 如果他们使用正则表达式,他们也应该转义.,尽管根本不需要正则表达式。
  • @khelwood 已修复。我同意,但这取决于 OP 在做什么。
  • \\ 起作用了,它是 '.' 所必需的。虽然
猜你喜欢
  • 1970-01-01
  • 2013-05-30
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多