0

我有一个“余额”字符串,前面有一个美元符号。我想修改这个标志,所以我可以将刺痛转换为双倍,但我的代码不起作用。

这是我尝试过的:

String balance = "$5.30";
balance = balance.replaceFirst("$", "");

看起来代码没有任何区别。更奇怪的是,下面的代码正是我所需要的:

String balance = "$5.30";
balance = balance.replaceFirst(".", "");

尽管我可以只使用第二个代码,但我想了解它为什么会导致这个结果。

4

1 回答 1

7

$并且.是 Java 正则表达式世界中的特殊字符(元字符),您应该使用反斜杠对其进行转义,以便将其视为普通字符。

String balance = "$5.30";
balance = balance.replaceFirst("\\$", "");

String balance = "$5.30";
balance = balance.replaceFirst("\\.", "");

因此 :

      String balance = "$5.30";
      balance = balance.replaceFirst("\\.", "").replaceFirst("\\$", "");
      System.out.println(balance);

输出:530

只是想在正则表达式中添加更多关于$.含义的解释:

  1. $用于检查行尾是否跟随
  2. .用于匹配任何符号

here's a tutorial for Regex in java

于 2012-12-23T00:03:32.317 回答