You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何仅将字符串中值为整数的double转换为int类型?

把字符串中的整数型Double转为Int的实现方案

刚好之前处理过类似的表达式格式化需求,用正则替换就能完美解决你的问题。核心就是精准匹配那些以.0结尾的数值,把它们简化成整数形式,同时保留非整数的浮点数(比如2.1)。

直接可用的Java代码示例

public class NumericFormatter {
    public static void main(String[] args) {
        String original = "3.0^3x+x-2.1+9.0";
        // 正则匹配并替换:捕获数字部分,去掉后面的.0
        String formatted = original.replaceAll("(\\d+)\\.0", "$1");
        System.out.println(formatted); // 输出结果:3^3x+x-2.1+9
    }
}

正则表达式说明

  • (\\d+):捕获一个或多个数字(这就是我们要保留的整数部分),用括号标记为捕获组$1
  • \\.0:匹配字面量的.0部分
  • 整个正则会找到所有类似3.09.0这样的子串,然后替换成捕获到的数字部分,也就是39

边界情况补充

如果你的字符串里可能出现单独的.0(比如没有前置数字的情况),可以把正则调整为(?<!\\d)(\\d+)\\.0(?!\\d),这样只会匹配前后都不是数字的X.0,避免误替换其他场景的内容。不过从你的示例来看,基础版本的正则已经完全够用啦。

内容的提问来源于stack exchange,提问作者J.Doe

火山引擎 最新活动