将输入int转换为字符串&找到正确的号码

时间:2017-10-13 17:08:03

标签: java string int

我试图将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号码尚未修复。

3 个答案:

答案 0 :(得分:0)

你能直接把它作为字符串吗?

String cc = in.nextLine();

答案 1 :(得分:0)

使用以下代码代替 int cc = in.nextInt();

字符串cc = in.next();

答案 2 :(得分:0)

您永远不会使用扫描输入的int版本。而不是使cc成为int然后转换为字符串,而不是最初使它成为一个字符串......就像这样:

String cc = in.nextLine();