gpt4 book ai didi

java 。 string.replaceFirst() 的奇怪行为

转载 作者:行者123 更新时间:2023-12-01 07:34:25 26 4
gpt4 key购买 nike

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

这是我尝试过的:

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

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

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

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

最佳答案

$. 是 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. . 用于匹配任意符号

这是 Regex in java 的教程

关于 java 。 string.replaceFirst() 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14007634/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com