BoD*_*003 2 java string math integer
我有下一个代码,它得到一个数字,我需要将该数字拆分为部分,firstPart应该是没有最后一个数字的整数,而secondPart应该只是原始数字的最后一个数字.
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();
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我一个更好的方法吗?谢谢!
aus*_*nbv 12
int x = 1343248724;
int firstpart = x/10;
int secondpart = x%10;
System.out.println(firstpart);
System.out.println(secondpart);
Run Code Online (Sandbox Code Playgroud)
Mod(%)给出剩余部分,如果你修改10 Divide将丢弃最后一个数字,它将是最后一个数字.这样你就不必实际搜索字符串.
做所有长度的事情对我来说似乎有些过分
哦,并将你的参数作为我将使用的int
Interger.decode(fiscalId);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12826 次 |
| 最近记录: |