如果我尝试申请:Integer.valueOf(String.valueOf(Integer.MAX_VALUE) + "9");
我得到NumberFormatException
。
但是我需要从Integer.MAX_VALUE
表示中得到余数模String
。
我怎样才能做到这一点?
UPD:Integer.valueOf(String.valueOf(Integer.MAX_VALUE) + "9");
只是一个例子。该字符串的值可能超过Long的最大值。
答案 0 :(得分:2)
您正在寻找BigInteger
。这允许使用非常大的数字进行数学运算。
以下内容允许您使用非常大的数字进行模数运算:
BigInteger number = new BigInteger(myValueAsString);
BigInteger intMax = BigInteger.valueOf(Integer.MAX_VALUE);
BigInteger remainder = number.remainder(intMax);
答案 1 :(得分:2)
要保存大量输入,您可以尝试BigInteger类。创建一个将保存String输入的对象,并使用第二个BigInteger类对象对其进行模数化,该对象将保存整数的MAX_VALUE。
您可以将代码编写为:
BigInteger bigInteger = new BigInteger(str);
bigInteger = bigInteger.remainder(new BigInteger(String.valueOf(Integer.MAX_VALUE)));
System.out.println(bigInteger);
答案 2 :(得分:1)
试试这个
int i = (int)Long.parseLong(String.valueOf(Integer.MAX_VALUE) + "9");
注意:我会使用(Integer.MAX_VALUE +“9”)
答案 3 :(得分:1)
你也可以这样试试:
System.out.println(Long.valueOf(String.valueOf(Integer.MAX_VALUE + "9")) % 5);
答案 4 :(得分:1)
使用
BigDecimal bd = new BigDecimal(str);
尝试以下代码
int i = Integer.MAX_VALUE ;
System.out.println(i+1);