我想找到给定的字符串"99999999999999999999999999"或任何不适合任何数据类型的大量数字.我想查找该数字是否大于Integer.MAX_VALUE
使用 BigInteger
BigInteger maxInt = BigInteger.valueOf(Integer.MAX_VALUE);
BigInteger value = new BigInteger("whatever");
if (value.compareTo(maxInt) > 0)
{
// larger
}
Run Code Online (Sandbox Code Playgroud)
你可以调用parseInt和catch NumberFormatException,如果数字太大就会抛出(尽管如果它String有非数字字符也会被抛出).
如果要避免该异常,可以运行以下检查:
String超过10个字符(如果第一个字符是' - '或'+',则为11个字符),它必须大于Integer.MAX_VALUE或小于Integer.MIN_VALUE.Long.parseLong()并比较结果Integer.MAX_VALUE.