gpt4 book ai didi

Java,检测String是否超出Long类型值边界

转载 作者:行者123 更新时间:2023-12-03 23:01:10 32 4
gpt4 key购买 nike

给定以下 Java 代码:

String columnValue = "188237574385834583453453635";
columnValue =(Long.parseLong(columnValue)>Long.MAX_VALUE?"0":columnValue);

它抛出 java.lang.NumberFormatException 因为输入值超出了 Long 的最大值。但是,有一种简单的方法可以检测“字符串”类型中的数字是否超出 Long 的最大值,而无需使用 try catch解决方案?

最佳答案

一个懒惰的方法可以是使用 BigInteger .

BigInteger a = new BigInteger("188237574385834583453453635");
BigInteger b = BigInteger.valueOf(Long.MAX_VALUE);

System.out.println("a > Long.MAX_VALUE is : " + (a.compareTo(b) > 0 ? "true" : "false"));

如果性能很重要,您将不得不测试更多的解决方案。

@SotiriosDelimanolis 的想法也不错:

Extract the source code of parseLong and instead of throwing an exception, return a boolean.

代码中还有很多throw,有的是格式化的,有的是溢出的,要选对。

关于Java,检测String是否超出Long类型值边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28701637/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com