我有一个“余额”字符串,前面有一个美元符号。 我想修改这个标志,所以我可以将sting转换为double,但我的代码无效。
这是我尝试过的:
String balance = "$5.30";
balance = balance.replaceFirst("$", "");
看起来代码没有任何区别。 为了使它更奇怪,下面的代码完全符合我的需要:
String balance = "$5.30";
balance = balance.replaceFirst(".", "");
即使我可以使用第二个代码,但我想了解它为什么会导致这个结果。
答案 0 :(得分: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
只是想在正则表达式中添加有关$
和.
含义的更多说明:
$
用于检查行尾是否跟随.
用于匹配任何标志