本文介绍了在将十六进制字符串解析为int值时发生意外的NumberFormatException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想解析一个包含8位十六进制数字(4字节)的字符串,但我得到了一个N​​umberFormatException。这里有什么不对?

  assertThat(Integer.parseInt(FFFF4C6A,16),(0xFFFF4C6A)); 


解决方案

您的号码表示的数字大于可分配给INT。尝试:

  Long.parseLong(FFFF4C6A,16); 

给4294921322。



doc
$ b

,这是您碰到的第四种情况。


I want to parse an String containing 8 hex-digits (4bytes) but i got an NumberFormatException. What is wrong here?

assertThat(Integer.parseInt("FFFF4C6A",16),is(0xFFFF4C6A));
解决方案

Your number represents a number greater than that assignable to an int. Try:

Long.parseLong("FFFF4C6A", 16);

which gives 4294921322.

From the doc:

and it's the 4th case that you're hitting.

这篇关于在将十六进制字符串解析为int值时发生意外的NumberFormatException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-16 11:22