0

5桁の整数を1桁ずつ読み取る必要があるメソッドを作成しています。(つまり、26505 は 2 6 5 0 5 として読み取られ、各数字は別の方法で個別に読み取ることができます) 別の方法で数字を読み取る必要があるため、整数を文字列に変換して各文字を読み取ることができません。%10 を使用することも提案されていますが、それでは個々の数字が得られません。また、整数は左から右に桁ごとに読み取る必要があります。これが十分に明確であることを願っていますが、これを完了する方法について本当に混乱しており、試したすべてが機能しません。提供されたヘルプをいただければ幸いです。ありがとうございます。

    while(d>=10){  
    j=code%d;
    d=d/10;
    printDigit(j)
4

4 に答える 4

3

これにより、整数桁の配列が順番に返されます。

public static int[] integerToDigits(int n)
{
    int[] digits= new int[5];
    int temp = n;
    for(int i = 0; i < 5; i++)
    {
        digits[4-i] = temp % 10;
        temp /= 10;
    }
    return digits;
}

integerToDigits(12345) = {1,2,3,4,5}

于 2012-10-17T23:36:03.793 に答える
3

左から右に1 桁を取得する場合: -

26505 / 10000 = 2
26505 % 10000 = 6505

6505 / 1000 = 6
6505 % 1000 = 505

505 / 100 = 5
505 % 100 = 5

5 / 10 = 5 

これで実装できると思います。

しかし、右から左へのトラバースに問題がなければ、分母が 10 に固定されるため、より簡単になります。

26505 % 10 = 5
26505 / 10 = 2650

2650 % 10 = 0
2650 / 10 = 265

265 % 10 = 5
265 / 10 = 26

26 % 10 = 6
26 / 10 = 2

2 % 10 = 2 
于 2012-10-17T23:30:37.000 に答える
0

あなたはこれを行うことができます:

  1. 整数配列を作成し、ユーザー入力文字列の各文字を解析して配列に格納できます
  2. 次に、この配列を他のメソッドに使用できます。

例えば

Scanner scan = new Scanner(System.in);
    String str = scan.nextLine();
    int[] digitArray = new int[str.length()];
    for(int i=0; i<str.length(); i++)
    {
        String temp = Character.toString(str.charAt(i));
        System.out.println("temp is "+temp);
        digitArray[i] = Integer.parseInt(temp);
    }
    for (int i =0; i<digitArray.length; i++) {
        System.out.println(digitArray[i]);
    }
于 2012-10-17T23:37:14.853 に答える
0

完全に怠惰なものは次のようになります

final int [] digits = {score % 1000 / 100, score % 100 / 10, score % 10};

たとえば、int が 999 よりも大きくならないことがわかっている場合は、これでうまくいきます。

この例から、整数から次の 10 の累乗を計算し、ループ内の配列に数字を追加することで、任意の整数をサポートするように改善するのは簡単です。

于 2012-10-17T23:33:25.523 に答える