我在下面有一個十六進制字符串格式: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條經驗 獲得超8個贊
根據您給出的示例,所需的ID號由給定十六進制字符串的除最后八個字符外的所有字符組成(FFFF9000在兩種情況下均為這兩種情況)。換句話說,一個子字符串從字符串的開頭開始,一直延伸到但不包括八到最后一個字符:
String h = "2828287798519497FFFF9000";
String id = h.substring(0, h.length()-8);
System.out.println(h + " => " + id);
添加回答
舉報
0/150
提交
取消