2011-02-11 41 views
0

我有长度的串uniqueCode 16.问题在十六进制值转换为BIGINTEGER

String uniqueCode = accountno + extracode; 

accountno是长度为6的和附加码在下列方式填入:

String extraCode = branch + loanCode + openingDateStr ; 
BigInteger hexaCode = new BigInteger(extraCode); 
extraCode = hexaCode.toString(16); // hexa bit 

现在我想从这个唯一的代码获取分支,loancode和openingdatestr。 如何做到这一点?

+1

为什么这需要一个`BigInteger`?如果您想对其执行某种形式的数学运算,通常只会将其转换为整数。如果它只是一个标识符,您可以将其保留为“String”。 – trojanfoe 2011-02-11 07:59:14

回答

1

extraCode十六进制拿回原始字符串:

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);