字节阵列中包含的Char代码的简短方法



有一个字节[4]包含随机十六进制数字的char代码,即b [0] == 49,b [1] == 68,b [2] == 70。..

我想用这些十六进制值来计算一些东西,因此我需要将char值投入到int。这听起来很简单,但是我的解决方案看起来很糟糕:

char c1 = ((char)b[0]);
String s1 = String.valueOf(c1);
int p1 = Integer.parseInt(s1);
char c2 = ((char)b[1]);
String s2 = String.valueOf(c2);
int p2 = Integer.parseInt(s2);
...

没有较短的方法吗?我的问题中有很多通用的关键词,以至于我也无法通过Google找到解决方案。

更新的帖子:

哎呀,我忘了提到字节[]包含十六进制值。所以

int x = b[0] - '0';

不够。

怎么样:

int p1 = b[0];
// etc

哦,等等。您想将字符解释为数字并使用值。如果您确定字节值是ASCII数字代码,则可以执行此操作:

int p1 = b[0] - '0';
// etc

如果您想要一种正式正确的方法:

int p1 = Character.getNumericValue(b[0]);
// etc

这将正确处理十六进制字符(0,1,...,f),甚至是'u216C'(Roman Numeral Fifty)。

最新更新