【问题标题】:How I can fix it this "replaceAll" error? [duplicate]我该如何解决这个“replaceAll”错误? [复制]
【发布时间】:2019-07-28 02:30:03
【问题描述】:

我该如何解决?

String replace1 = WEBSITE.replaceAll("{fromNumber}", number);

replaceAll 函数中的这个字符“{”错误。谢谢

【问题讨论】:

  • 阅读 replaceAll 的 javadocs。第一个参数是一个正则表达式,而不是一个简单的字符串。现在阅读Pattern 的javadocs,找出Java 中正则表达式的语法。提示:{ 是一个正则表达式元字符,需要在字符串文字中使用`. But a ` 进行转义。
  • String replace1 = WEBSITE.replaceAll("\\{fromNumber\\}", String.valueOf(number));RegEx 中的花括号有特殊用途,因此必须转义。此外,您必须替换为字符串,因此将 number 转换为字符串。

标签: java replaceall


【解决方案1】:

正如@Stephen C 已经解释过的replaceall 方法的第一个参数是regex

看起来您正试图用给定的数字替换 {fromNumber} 简单字符串。所以不要使用replaceall,而是使用replace 方法,它接受一个字符串作为第一个参数。

String replace1 = WEBSITE.replace("{fromNumber}", number);

【讨论】:

    【解决方案2】:

    我没有工作,因为 '{' 是一个正则表达式元字符,replaceAll 正在使用它。如果您想从您的字符串中替换所有“{fromNumber}”,那么您必须:

    字符串替换1 = WEBSITE.replaceAll("\{fromNumber\}", number);

    但是,如果您只需要更换一个,那么您可以使用@lahiruk 的答案并使用

    String replace1 = WEBSITE.replace("{fromNumber}", number);

    这里要添加一些东西,如果你知道你的字符串将包含多少次要替换的字符串,你可以使用任意次数的替换。


    更多信息

    Syntax of regexp.

    String.repaceAll()

    【讨论】:

      猜你喜欢
      • 2011-09-04
      • 1970-01-01
      • 2016-07-21
      • 2016-09-09
      • 2015-02-28
      • 2013-08-16
      相关资源
      最近更新 更多