我在下面有一个十六进制字符串格式:2828287798519497FFFF9000 => 2828287798519497 (result)
1122334466667788996FFFF9000 => 1122334466667788996 (result)ID的长度在16到19之间,其中最右边是0xF。什么是0xF?我如何从上面的十六进制字符串中获取ID号(长度为16、17、18或19)?
2 回答
达令说
TA贡献1821条经验 获得超6个赞
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
慕田峪9158850
TA贡献1794条经验 获得超7个赞
根据您给出的示例,所需的ID号由给定十六进制字符串的除最后八个字符外的所有字符组成(FFFF9000在两种情况下均为这两种情况)。换句话说,一个子字符串从字符串的开头开始,一直延伸到但不包括八到最后一个字符:
String h = "2828287798519497FFFF9000";
String id = h.substring(0, h.length()-8);
System.out.println(h + " => " + id);
添加回答
举报
0/150
提交
取消