1

こんにちはみんな私はJavaの初心者ですが、array&arraylistに問題があります。私の主な問題は、コンピューティング、動的データを配列に書き込む方法と、後でそれを読み取る方法です。これが私の奇妙なコードです:

    public static void main(String[] args) {

    int yil, bolum = 0, kalan;
    Scanner klavye = new Scanner(System.in);
    ArrayList liste = new ArrayList();

    //or shall i use this? >> int[] liste = new int[10];

    System.out.println("Yıl Girin: "); // enter the 1453
    yil = klavye.nextInt();

    do{ // process makes 1453 separate then write in the array or arraylist. [1, 4, 5, 3]

    kalan = yil % 10;
    liste.add(kalan); //my problem starts in here. How can i add "kalan" into the "liste".
    bolum = yil / 10;
    yil = bolum;

    }while( bolum == 0 );

    System.out.println("Sayının Basamak Sayısı: " + liste.size()); //in here read the number of elements of the "liste" 
    klavye.close();
}

編集:

    //needs to be like that
    while( bolum != 0 ); 
    System.out.println("Sayının Basamak Sayısı: " + liste);
4

4 に答える 4

4

ループ停止条件を次のようにしたいと思うでしょう。

while( bolum != 0)

処理する数字が残っていない場合にbolumのみ発生するためです。0また、amitが前述したように、ユーザーが0番号の入力を求められたときに入力した場合もあるので、それを考慮に入れる必要があります。

于 2012-10-21T21:29:32.307 に答える
1

の文字列表現を取得するにはArrayList(文字列表現を通じて含まれる要素を表示する)、次を使用できます。

System.out.println("Sayının Basamak Sayısı: " + liste);

配列に変換する必要はありません。これが機能するのは、listetoStringメソッドが呼び出されるためです(これが、明示的に呼び出す必要がない理由です)。

于 2012-10-21T21:28:25.327 に答える
0

次の行を変更する必要があります。

}while( bolum == 0 );

これに:

}while( bolum > 0 );
于 2012-10-21T21:31:45.890 に答える
-1

ArrayListの要素を出力する場合は、最後のステートメントを次のように出力するように更新します。

  System.out.println("Sayının Basamak Sayısı: " + liste);

または、リストを繰り返して、次のように出力することもできます。

 for(Object i: liste){
    System.out.println(i);
 }

これにより、個々のリストアイテムが別々の行に印刷されます。

while(bolum != 0);bolumまた、while条件は、ゼロ以外になるため 、最初の反復後に終了する可能性があるため、修正してください1, 2...(!= 0)

于 2012-10-21T21:25:38.453 に答える