我一直使用string.replaceAll()没有任何问题。

但是现在我很困惑...

这是我的代码

public static String getVersionName() {
    String versionName = null;
    versionName = "v"+packageInfo.versionName;
    versionName = versionName.replaceAll(".","_");
    return versionName;
}


replaceAll之前的versionName为v1.0.4

预期结果是v1_0_4
实际结果是v_________
它由于某种原因而变化,并且永远不是预期的结果。

为什么会这样呢?我该如何解决?

最佳答案

这是因为replaceAll需要正则表达式。您可能应该改用replace(仍然替换所有出现的内容),因为您只想匹配一个字符。

因此,在v1.0.4上使用versionName = versionName.replace('.','_');可以得到v1_0_4。

10-07 18:53