String.replaceAll() 与数字字符串的奇怪行为
Strange behaviour for String.replaceAll() with number string
String pre = "895";
System.out.println(pre);
pre = pre.replaceAll(".", "");
System.out.println(pre);
奇怪的输出是:
895
所以字符串中的所有数字都被删除了。这是为什么?
这里的问题是,replaceAll
方法使用 REGEX
作为第一个参数。
在 REGEX 中,.
表示任何字符,因此当前您要用 ""
替换任何字符。
这就是您的结果为空的原因。
如果要替换为特定字符,则应使用 pre.replace(".", "");
.
String pre = "895";
System.out.println(pre);
pre = pre.replaceAll(".", "");
System.out.println(pre);
奇怪的输出是:
895
所以字符串中的所有数字都被删除了。这是为什么?
这里的问题是,replaceAll
方法使用 REGEX
作为第一个参数。
在 REGEX 中,.
表示任何字符,因此当前您要用 ""
替换任何字符。
这就是您的结果为空的原因。
如果要替换为特定字符,则应使用 pre.replace(".", "");
.