2017-10-13 17 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();

相關問題