大家好,我是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);
答案 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)
。