为了账号安全,请及时绑定邮箱和手机立即绑定

Java 客户端 SSL 重新协商

Java 客户端 SSL 重新协商

慕婉清6462132 2021-10-28 16:39:38
我正在尝试在 JAVA 中创建一个应用程序,以检查用户输入的信用卡号是否有效。这些是模数 10 的检查步骤:Step1:从右到左每第二个数字加倍。如果一位数加倍得到两位数,则将两位数相加得到一位数。步骤 2:现在将步骤 1 中的所有个位数相加Step3:将卡号中从右到左奇数位的所有数字相加Step4:将第2步和第3步的结果相加第五步:如果第四步的结果能被10整除,则卡号有效;否则无效。在这种情况下,卡号无效——因为 75 不能被 10 整除。到目前为止,我的问题是我尝试的每个卡号(使用有效号码)都被告知它无效。我尝试使用调试工具,看起来我的 sum 值总是错误的。我需要帮助找出我在计算中搞砸的地方,或者我是否遗漏了什么。public class CreditCardChecker {/** * @param args the command line arguments */public static void main(String[] args) {    // TODO code application logic here    Scanner sc = new Scanner(System.in);    System.out.println("Enter credit card number to check validity: ");    System.out.println();    String cardNo = sc.next();    int sum = FindSum(cardNo);    if ((sum % 10) == 0) {        System.out.println("The card number is VALID.");    } else {        System.out.println("The card number is INVALID");    }}public static int FindSum(String cardNo) {    //CONVERTING CARD NUMBER INTO AN ARRAY    int[] digits = new int[cardNo.length()];    for (int i = 0; i < cardNo.length(); i++) {        digits[i] = Character.getNumericValue(cardNo.charAt(i));    }    //DOUBLE EVERY OTHER NUMBER FROM RIGHT TO LEFT    for (int i = digits.length - 1; i >= 0; i -= 2) {        digits[i] += digits[i];        if (digits[i] > 9) {            digits[i] = digits[i] - 9;        }    }    int sum = 0;    for (int i = 0; i < digits.length; i++) {        sum += digits[i];    }    sum *= 9;    return sum;}}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 202 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信