java.lang.NumberFormatException 错误及解决办法

OperatingSystemMXBean osmb = (OperatingSystemMXBean) ManagementFactory
				.getOperatingSystemMXBean();
		// 内存
		String memory = osmb.getTotalPhysicalMemorySize()
				+ "B";
		System.out.println(memory);
		MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
		Object attribute = null;
		try {
			attribute = mBeanServer.getAttribute(new ObjectName("java.lang","type","OperatingSystem"), "TotalPhysicalMemorySize");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("Total memory: "+ attribute.toString() +"B");
		System.out.println("Total memory: "+ Integer.parseInt(attribute.toString()) +"MB");
		System.out.println("Total memory: "+ Long.parseLong(attribute.toString())/ 1024L/1024L/1024L +"G");


错误提示:

4294967295B
Total memory: 4294967295B
Exception in thread "main" java.lang.NumberFormatException: For input string: "4294967295"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
	at java.lang.Integer.parseInt(Integer.java:461)
	at java.lang.Integer.parseInt(Integer.java:499)
	at com.travelsky.angel.client.base.util.LocIpMacCompName.main(LocIpMacCompName.java:174)

 错误关键字 java.lang.NumberFormatException 这句话明确告诉了我们是数字格式异常,接着后面有 For input string: "

原因分析:

转换成数字类型时出错了。


<pre name="code" class="java"><strong><span style="font-size:18px;">解决方案:</span></strong>
由于int 类型最大范围是-2147483648-2147483647 ,超出他的范围所以会犯错,直接拿long型转就好了。
有时可能也会出现空格的情况,trim()掉就可以了。
 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值