0

ユーザーに 10 桁の数字を要求し、各数字を配列に格納するプログラムを作成しようとしています。

public class checksum {

public static void main(String[] args) {

    int david[] = new int[10];
    System.out.println("Enter your 10 digit number: ");
    Scanner scan = new Scanner(System.in);

    for (int i = 0; i < david.length; i++) {

        david[i] = scan.nextInt();
    }

    System.out.println(david);

}

}

誰が私が間違っているのか教えてもらえますか?

4

2 に答える 2

3

として読み取りString、次を使用して配列に入力しますString.charAt

    int david[] = new int[10];
    System.out.println("Enter your 10 digit number: ");
    Scanner scan = new Scanner(System.in);
    String str = scan.next();
    if (str.length() < david.length) {
        System.out.println("invalid number");
    }
    for (int i = 0; i < david.length; i++) {

        david[i] = Character.digit(str.charAt(i), 10);
    }
    System.out.println(Arrays.toString(david));

出力:

Enter your 10 digit number: 
1234567890
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
于 2012-10-19T16:33:16.110 に答える
1

コンソールに 10 回の入力を待機させるループ内に読み取りコードを配置しました。入力を一度取得してから、数値を分割できます。以下はコードです

public static void main(String[] args) {

    int david[] = new int[10];
    System.out.println("Enter your 10 digit number: ");
    Scanner scan = new Scanner(System.in);

    int number = scan.nextInt();

    for (int i = david.length - 1; i >= 0; i--) {
        david[i] = number%10;
        number /= 10;
    }

    for (int i = 0; i < david.length; i++) {
        System.out.print(david[i]);
    }

}
}
于 2012-10-19T16:33:16.307 に答える