我正在嘗試在 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;}}
Java 客戶端 SSL 重新協商
慕婉清6462132
2021-10-28 16:39:38