测试代码,很简单,如下:
[code="java"]
System.out.println("1,234,567.89".replace(".", ""));
System.out.println("1,234,567.89".replaceFirst(".", ""));
System.out.println("1,234,567.89".replace(",", ""));
System.out.println("1,234,567.89".replaceFirst(",", ""));
System.out.println("1,234,567.89".replace("2", ""));
System.out.println("1,234,567.89".replaceFirst("2", ""));
[/code]
按理说replaceFirst()是替换第一个匹配的字符串,当使用"."时,则替换了第一个字符串,没有做匹配。运行结果如下(JDK 6):
[code="java"]
1,234,56789
,234,567.89
1234567.89
1234,567.89
1,34,567.89
1,34,567.89
[/code]
这是什么原因呢,还是有什么道理在里边。
Java中replaceFirst(".", "")替换了字符串的第一个字符,算是Bug么,还有有什么原因
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
9条回答 默认 最新
iteye_15034 2012-06-07 12:15关注[code="java"]
replaceFirst方法第一个参数是正则表达式,小点需要转义试试这个吧
System.out.println("1,234,567.89".replaceFirst("\.", ""));
[/code]本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报