我有下一个代码,它获得一个数字,我需要将该数字拆分成部分,firstPart应该是没有最后一个数字的整数,secondPart应该只是原始号码的最后一位数字。Java:从INT的其余部分拆分最后一位数
public Boolean verificationNumberFiscalId(String fiscalId) {
// Trying to do a better wa yto do it
Integer firstPart = fiscalId.length()-1;
Integer secondPart = ??????????;
// My old logic
String NitValue = "";
for (Integer i = 0; i < fiscalId.length()-1; i++) {
NitValue = fiscalId.substring(i,1);
}
Integer actualValueLength = fiscalId.length()-1;
String digitoVerificador = fiscalId.substring(actualValueLength,1);
return this.generateDigitoVerification(NitValue) == digitoVerificador;
}
/**
* @param nit
* @return digitoVerificador
* @comment: Does the math logic
*/
public String generateDigitoVerification(String nit) {
Integer[] nums = { 3, 7, 13, 17, 19, 23, 29, 37, 41, 43, 47, 53, 59, 67, 71 };
Integer sum = 0;
String str = String.valueOf(nit);
for (Integer i = str.length() - 1, j=0; i >= 0; i--, j++) {
sum += Character.digit(str.charAt(i), 10) * nums[j];
}
Integer dv = (sum % 11) > 1 ? (11 - (sum % 11)) : (sum % 11);
return dv.toString();
}
您能否建议我一个更好的方法来做到这一点?谢谢!
诚然,这是更优雅(+1) – 2010-11-09 15:34:15
@seanizer:同意(+1) – darioo 2010-11-09 15:35:35
完美的方式来做到这一点!谢谢 :) – BoDiE2003 2010-11-09 17:43:58