我下面有一个十六进制字符串格式:
2828287798519497FFFF9000 => 2828287798519497 (result)
1122334466667788996FFFF9000 => 1122334466667788996 (result)
id的长度在16到19之间,其中最右边是0xF。
什么是0xF?
如何从上面的十六进制字符串中获取长度为16、17、18或19的ID号?
答案 0 :(得分: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));
您的两个值的以10为底的表示形式是
12427948526435964620659200000
21719411700849473095611778568192
答案 1 :(得分:0)
根据您提供的示例,所需的ID号由给定十六进制字符串的最后8个字符(在两个示例中均为FFFF9000
)组成。换句话说,子字符串从字符串的开头开始,一直延伸到但不包括最后八位字符:
String h = "2828287798519497FFFF9000";
String id = h.substring(0, h.length()-8);
System.out.println(h + " => " + id);