从十六进制字符串中检索长度可变的数字

我在下面有一个十六进制字符串格式:

2828287798519497FFFF9000 => 2828287798519497 (result)
1122334466667788996FFFF9000 => 1122334466667788996 (result)

ID的长度在16到19之间,其中最右边是0xF。

什么是0xF?

我如何从上面的十六进制字符串中获取ID号(长度为16、17、18或19)?


繁星coding
浏览 147回答 2
2回答

达令说

BigInteger用于任意精度的整数数学,并且具有一个构造函数,该构造函数使用String和一个int基数。0xF是以16为底的第16个值(数字通常是以10为底的0到9,以及值A,B,C,D,E和F)。System.out.println(new BigInteger("2828287798519497FFFF9000", 16));System.out.println(new BigInteger("1122334466667788996FFFF9000", 16));因此,您的两个值的基数为1012427948526435964620659200000 21719411700849473095611778568192

慕田峪9158850

根据您给出的示例,所需的ID号由给定十六进制字符串的除最后八个字符外的所有字符组成(FFFF9000在两种情况下均为这两种情况)。换句话说,一个子字符串从字符串的开头开始,一直延伸到但不包括八到最后一个字符:String h = "2828287798519497FFFF9000";String id = h.substring(0, h.length()-8);System.out.println(h + " => " + id);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java