在android中奇怪的NumberFormatException

时间:2015-03-18 05:28:06

标签: java android

它似乎是整数,但它不能用Integer.parse解析()如何解决它?

 int a= Integer.parseInt(lhs.getViewCount());

 Caused by: java.lang.NumberFormatException: Invalid int: "6125635424"
        at java.lang.Integer.invalidInt(Integer.java:138)
        at java.lang.Integer.parse(Integer.java:378)
        at java.lang.Integer.parseInt(Integer.java:366)
        at java.lang.Integer.parseInt(Integer.java:332)
        at com.youtubetracker.adapters.MyChannelListAdapter$1.compare(MyChannelListAdapter.java:46)
        at com.youtubetracker.adapters.MyChannelListAdapter$1.compare(MyChannelListAdapter.java:37)

4 个答案:

答案 0 :(得分:1)

最大整数范围是2147483647,您正在将6125635424转换为整数。这是异常背后的主要原因。

Long.parseLong(lhs.getViewCount());

将解决您的问题。

答案 1 :(得分:1)

试试这个:

替换:int a= Integer.parseInt(lhs.getViewCount());

 Long a= Long.parseInt(String.valueOf(lhs.getViewCount()));

答案 2 :(得分:1)

'6125635424'无法存储在Integer中,您需要以Double或Long存储。

试试这个

Long a = Long.parseLong(lhs.getViewCount().toString());

答案 3 :(得分:1)

总是长时间使用BigInteger并浮动。

BigInteger value= new BigInteger(lhs.getViewCount());

您可以将该值转换为intlongfloat

表格Java Doc intValue()

  

将此BigInteger转换为int。这种转换类似于Java *语言规范5.1.3节中定义的从long到int的缩小原语转换:如果这个BigInteger太大而不适合int,则只返回低位32位。请注意,此转换可能会丢失有关BigInteger值的总体大小的信息,并返回具有相反符号的结果。