无法将String转换为Int Selenium JAVA

时间:2015-07-22 07:59:13

标签: java

我试图将String转换为int。但是,遇到错误会抛出NumberFormatException

java.lang.NumberFormatException: For input string: "07221255201"

代码:

int value = Integer.valueOf(itemData.get(row).ERP_Customer_Item.trim());

请告知。

2 个答案:

答案 0 :(得分:3)

7221255201超出原始int范围。您应该使用long类型。 这应该可以正常工作:

long value = Long.parseLong(itemData.get(row).ERP_Customer_Item.trim());

对于其他上下文,尝试在编写代码时考虑保留原始类型范围。它就像是一个由不同大小的锤子组成的锤子组,并在上下文中使用适当的锤子。例如,如果您知道特定变量将始终在[-128,127]的范围内,则应使用short而不是int,因为在后一种情况下您会浪费大量的位。 / p>

答案 1 :(得分:1)

您的号码大于Integer.MAX_VALUE(2 ^ 31 - 1,或2147483647),因此无法将其解析为整数。

小心从字符串转换为数字。无论创建该数字是什么,都没有使用java ints。

在这种情况下,您可以使用Long.parseLong转换为long,或Long.valueOf获取Long(对象而不是主要),但为什么要从字符串转换?您丢失了信息(在这种情况下,前导零可能重要,也可能不重要,具体取决于您对数据的处理方式)。转换有一种方法可以在某个地方咬回来。