Java:如何在arraylist中编写计算数据?

时间:2012-10-21 21:16:56

标签: java arrays arraylist

大家好,我是Java的初学者,我在阵列和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 个答案:

答案 0 :(得分:5)

我认为您最有可能希望循环停止条件为:

while( bolum != 0)

因为当您的号码中没有剩余的数字要处理时,bolum只会是0。此外,正如上面提到的那样,当提示输入数字时,用户可能会输入0,因此您应该考虑到这一点。

答案 1 :(得分:2)

要获取ArrayList的字符串表示形式(通过字符串表示显示其包含的元素),您可以使用

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

无需转换为数组。这是有效的,因为它会调用liste的{​​{3}}方法(这就是我们不需要显式调用它的原因)。

答案 2 :(得分:0)

您必须更改此行:

}while( bolum == 0 );

对此:

}while( bolum > 0 );

答案 3 :(得分:-1)

如果要在ArrayList中打印元素,请更新上一个要打印的语句,如下所示:

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

或者您可以迭代列表并打印为:

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

这将在单独的行中打印您的各个列表项。

另外请将您的while条件修改为while(bolum != 0); ,因为它可能会在第一次迭代后终止,因为bolum将为非零,即1, 2...(!= 0)