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(".", "");.