如何在java中将16位以上的字符串转换为整数?

如何在java中将16位以上的字符串转换为整数?,java,int,numberformatexception,Java,Int,Numberformatexception,我是java初学者。请帮帮我 int i = Integer.parseInt("9876543210123456"); System.out.println("Integer: " + i); 我犯了以下错误 java.lang.NumberFormatException for input string : "9876543210123456" 它超过了整数限制,你需要 它超过了整数限制,你需要 在java中,int的范围是从-2147483648到2147483647。因此,请尝试lo

我是java初学者。请帮帮我

int i = Integer.parseInt("9876543210123456");
System.out.println("Integer: " + i);
我犯了以下错误

java.lang.NumberFormatException for input string : "9876543210123456"

它超过了整数限制,你需要


它超过了整数限制,你需要


在java中,int的范围是从-2147483648到2147483647。因此,请尝试long而不是int。

在java中,int的范围是从-2147483648到2147483647。因此,请尝试使用long而不是int。

无法将上述值转换为
int
,因为它超过了整数的最大值:2147483647

相反,请尝试:

Long.parseLong("9876543210123456");
Long的最大值为9223372036854775807

要检查这些和其他基本数据类型的最大值,请尝试:

Integer.MAX_VALUE;
Long.MAX_VALUE;
// etc for Float, Double...
// Also try MIN_VALUE

无法将上述值转换为
int
,因为它超过了Integer的最大值:2147483647

相反,请尝试:

Long.parseLong("9876543210123456");
Long的最大值为9223372036854775807

要检查这些和其他基本数据类型的最大值,请尝试:

Integer.MAX_VALUE;
Long.MAX_VALUE;
// etc for Float, Double...
// Also try MIN_VALUE
您还可以使用NumberFormat解析数字:

 myNumber = nf.parse("9876543210123456");
见下文

您还可以使用NumberFormat解析数字:

 myNumber = nf.parse("9876543210123456");
见下文


在Java中,原始int数据类型是一个32位有符号2的补码整数

您可以使用Long:

long i = Long.parseLong("9876543210123456");
System.out.println("Long: " + i);
请参阅此处的API-

也可以使用BigInteger:

BigInteger i = new BigInteger("9876543210123456");
System.out.println("BigInteger: " + i);
请参阅此处的API-

BigInteger与基元整数类型类似,只是它提供了任意精度,因此对BigInteger的操作不会溢出或丢失精度。除了标准算术运算外,BigInteger还提供模运算、GCD计算、素性测试、素数生成、位操作和其他一些杂项运算

如果您不知道是使用原语还是对象引用,下面是一个很好的讨论


在Java中,原始int数据类型是一个32位有符号2的补码整数

您可以使用Long:

long i = Long.parseLong("9876543210123456");
System.out.println("Long: " + i);
请参阅此处的API-

也可以使用BigInteger:

BigInteger i = new BigInteger("9876543210123456");
System.out.println("BigInteger: " + i);
请参阅此处的API-

BigInteger与基元整数类型类似,只是它提供了任意精度,因此对BigInteger的操作不会溢出或丢失精度。除了标准算术运算外,BigInteger还提供模运算、GCD计算、素性测试、素数生成、位操作和其他一些杂项运算

如果您不知道是使用原语还是对象引用,下面是一个很好的讨论


虽然BigInteger可能有效,但最好的方法是只保留它
String
,并将其显示为
String
。这是处理长数字的理想方法,不会出现任何类型的异常

虽然BigInteger可能有效,但最好的方法是只保留它
String
,并将其显示为
String
。这是处理长数字的理想方法,不会出现任何类型的异常

long x = Long.parseLong("9876543210123456");

System.out.println("Integer: " + x);
否则,请使用跟随线

BigInteger bint = new BigInteger("9999999999999999", 16);
请尝试此操作。无法将超过13位的字符串转换为int。因此,应将其转换为long

否则,请使用跟随线

BigInteger bint = new BigInteger("9999999999999999", 16);

请尝试此操作..无法将超过13位的字符串转换为int..因此,您应该将其转换为long

整数的最大值为2^32-1,这远高于此值。使用
biginger
代替它这与JSP无关(即使您在JSP中遇到问题)。这一切都是关于
int
numberformatexception
真的是一个值得添加的标签吗?并不是说有人真的遵循了它。所以,这么多标签基本上是无用的。然而,新用户标记问题中的每个关键字会使它们保持活力。@当然是这样,如果只是为了分组问题和查找重复项的话。整数的最大值是2^32-1,这比这个大得多。使用
biginger
代替它这与JSP无关(即使您在JSP中遇到问题)。这一切都是关于
int
numberformatexception
真的是一个值得添加的标签吗?并不是说有人真的遵循了它。所以,这么多标签基本上是无用的。然而,新用户标记问题中的每一个关键字会使它们保持活力。@ChrisHayes当然是这样,如果只是为了分组问题和查找重复的问题。那么你将如何执行算术运算呢?这是第二种情况。根据阅读问题,如果结果值超过
MAX_INT
值,为什么不将其保留为字符串并显示(在控制台、网页或任何其他位置)。那么您将如何执行算术运算?这是第二种情况。根据阅读问题,如果结果值超过
MAX_INT
值,为什么不将其保留为字符串并显示(在控制台或网页或任何其他位置)。