我试图将Int的输入直接转换为String。 我也试图这样做,所以程序会在信用卡序列中找到正确的数字,以使其正确。
例如,如果我输入的信用卡号码不正确,程序会找到一种方法来更改数字,使其变得正确。
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Please input a credit card number to validate");
String cc = in.nextLine();
validateCreditCardNumber(cc);
String convertedCC = (cc);
}
private static void validateCreditCardNumber(String str) {
int[] ints = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
ints[i] = Integer.parseInt(str.substring(i, i + 1));
}
for (int i = ints.length - 2; i >= 0; i = i - 2) {
int j = ints[i];
j = j * 2;
if (j > 9) {
j = j % 10 + 1;
}
ints[i] = j;
}
int sum = 0;
for (int i = 0; i < ints.length; i++) {
sum += ints[i];
}
if (sum % 10 == 0) {
System.out.println(str + " is a valid credit card number");
} else {
System.out.println(str + " is an invalid credit card number");
}
}
这就是我的所有代码,但我想要解决的是当我初始化cc时,我可以转换为稍后使用的字符串。
我的问题: int到string已经修复, 转换为正确的CC号码尚未修复。
答案 0 :(得分:0)
你能直接把它作为字符串吗?
String cc = in.nextLine();
答案 1 :(得分:0)
使用以下代码代替 int cc = in.nextInt();
字符串cc = in.next();
答案 2 :(得分:0)
您永远不会使用扫描输入的int版本。而不是使cc成为int然后转换为字符串,而不是最初使它成为一个字符串......就像这样:
String cc = in.nextLine();