版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kansas_Jason/article/details/51159276
import java.util.Scanner;
import java.util.regex.Pattern;
public class xinyongka {
public static void main(String[] args) {
xinyongka x = new xinyongka();
System.out.println("请输入信用卡号(连续数字):");
Scanner sc = new Scanner(System.in);
String str = sc.next();
x.check(str);
}
void check(String str) {
int sum1 = 0, sum2 = 0;
String patternStr = "[0-9]{13,16}";
boolean result = Pattern.matches(patternStr, str);
int[] temp = new int[str.length()];
for (int n = 0; n < str.length(); n++) {
String st = String.valueOf(str.charAt(n));
temp[n] = Integer.parseInt(st);
}
for (int j = str.length() - 1; j >= 0; j--) {
sum1 += temp[j];
j--;
}
for (int k = str.length() - 2; k >= 0; k--) {
int m = temp[k] * 2;
if (m >= 10)
m = m - 9;
sum2 += m;
k--;
}
int sum = sum1 + sum2;
if (sum % 10 == 0 && result)
System.out.println("合格!");
else
System.out.println("不合格!");
}
}