Java 将十六进制值转换为bigInteger时出现问题

Java 将十六进制值转换为bigInteger时出现问题,java,Java,我有一个长度为16的字符串唯一代码 String uniqueCode = accountno + extracode; accountno的长度为6,外代码按以下方式填充: String extraCode = branch + loanCode + openingDateStr ; BigInteger hexaCode = new BigInteger(extraCode); extraCode = hexaCode.toString(16); // hexa bit 现在我想从这个

我有一个长度为16的字符串唯一代码

String uniqueCode = accountno + extracode;
accountno的长度为6,外代码按以下方式填充:

String extraCode = branch + loanCode + openingDateStr ;
BigInteger hexaCode = new BigInteger(extraCode); 
extraCode = hexaCode.toString(16); // hexa bit
现在我想从这个uniquecode返回branch、loancode和openingdatestr。
如何做到这一点

以十六进制从
外部代码
获取原始字符串:

BigInteger decCode = new BigInteger(extraCode, 16);
extraCode = decCode.toString(10);
现在,您可以根据组件的长度从
extraCode
中提取组件。例如,如果
branch
有6位,而
loanCode
有4位,则可以执行以下操作:

String branch = extraCode.substring(0, 6);
String loanCode = extraCode.substring(6, 10);

为什么这需要是一个
BigInteger
?如果要对整数执行某种形式的数学运算,通常只能将其转换为整数。如果它只是一个标识符,您可以将其保留为
字符串