Error: Compile Error: Expression must be a list type: String at line 446 column 44

Error: Compile Error: Expression must be a list type: String at line 446 column 44

我正在尝试验证 salesforce 中的保险号码,但我遇到以下错误

保险=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;
                }
            }

使用 Stringsubstring 方法获取索引处的字符。

此外,Apex 中没有 parseInt。请改用 Integer.valueOf

所以,您的代码的第一部分应该是

Integer numDigits = insurance.length() - 1;
Integer cle = Integer.valueOf(insurance.substring(numDigits));

参考文献: