项目场景:
字符串转Long 过长
问题描述
java.lang.NumberFormatException: For input string
public static void main(String[] args) { String x ="550056543020180912003"; String y ="64533370023"; Long valueOf1 = null; try { valueOf1 = Long.valueOf(x);//For input string: "550056543020180912003" } catch (NumberFormatException e) { e.printStackTrace(); } BigInteger valueOf = new BigInteger(x.trim()); long l = 0; try { l = Long.parseLong(x); } catch (NumberFormatException e) { e.printStackTrace(); } System.out.println(valueOf1); System.out.println(valueOf); System.out.println(l); }
结果:
java.lang.NumberFormatException: For input string: "550056543020180912003"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:592)
at java.lang.Long.valueOf(Long.java:803)
at com.migu.user.service.impl.GuoManUserProxyServiceImpl.main(GuoManUserProxyServiceImpl.java:155)
java.lang.NumberFormatException: For input string: "550056543020180912003"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:592)
at java.lang.Long.parseLong(Long.java:631)
at com.migu.user.service.impl.GuoManUserProxyServiceImpl.main(GuoManUserProxyServiceImpl.java:162)
null
550056543020180912003
0
解决方案:
1.BigInteger valueOf = new BigInteger(x.trim());
2.字符串处理截取
出现NumberFormatException的可能原因:
1.字符串带空格:
2.类型不匹配等等