2017-10-13 16 views
-1

我试图将Int的输入直接转换为字符串。 我也试图让程序在信用卡序列中找到正确的号码,以使其正确。将输入int转换为字符串并找到正确的编号

例如,如果我输入一个不正确的信用卡号码,程序会找到一种方法来更改数字,以便它变得正确。

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已修正字符串, 转换为正确的CC号码尚未修复。

+5

您*输入错误* d的标签,我的朋友。 Java和Javascript不是同一种语言,就像奥地利和澳大利亚不是同一个国家一样。 – PeterMader

+0

您的代码中已经将整数转换为字符串两次。有什么麻烦? – Ivar

+0

为什么你把它看作int,然后如果你想要它是字符串?要以字符串形式获取数据,请使用'next()'而不是'nextInt()'。 – Pshemo

回答

0

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

String cc = in.nextLine(); 
+0

谢谢!这工作 – Mistype

+0

这不提供问题的答案。一旦你有足够的[声誉](https://stackoverflow.com/help/whats-reputation),你将可以[对任何帖子发表评论](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提问者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/17620048) –

0

使用下面的代码而不是int cc = in.nextInt();

String cc = in.next();

0

您从不使用扫描输入的int版本。而不是使CC的整数,那么转换成字符串,就开始做一个字符串...是这样的:

String cc = in.nextLine();

相关问题