错误:编译错误:表达式必须为列表类型:第446行第44列的字符串

问题描述 投票:0回答:1

我正在尝试验证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;
                }
            }
salesforce salesforce-lightning salesforce-communities
1个回答
0
投票

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

而且,Apex中没有parseInt。请改用Integer.valueOf

因此,代码的第一部分应该是

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

参考:

© www.soinside.com 2019 - 2024. All rights reserved.