我正在尝试验证salesforce中的保险号码,但是我得到的错误率却不高
insurance = insurance.replace('A','01');
Integer sum = 0;
Integer numDigits = insurance.length() - 1;
Integer cle = parseInt(insurance[numDigits],10); =====>Error
for (Integer i = 0; i < numDigits; i++) {
Integer digit = parseInt(insurance[i], 10); =====> Error
if (math.mod(i,2) != 0) {
digit *= 2;
}
sum += digit > 9 ? digit - 9 : digit;
}
if (math.mod(sum ,10) != cle) {
return false;
} else {
return true;
}
}
使用substring
的String
方法获取索引处的字符。
而且,Apex中没有parseInt
。请改用Integer.valueOf
。
因此,代码的第一部分应该是
Integer numDigits = insurance.length() - 1;
Integer cle = Integer.valueOf(insurance.substring(numDigits));
参考: