我目前正致力于通过一组数字制作直方图来完成家庭作业。直方图本身对我来说不是问题。然而,我教授的样本运行方式发布了应该如何制作程序,似乎当用户输入直方图整数的提示出现时,输入就在一行中完成。
示例:
输入1到100之间的整数,并让-1终止序列:
5 43 65 8 5 43 4 2 3 4 55 76 4 -1
因此,程序必须逐个遍历每个字符,但也要知道一个数字是否有一个数字,使其成为一个两位数字,而且还必须知道如何处理空格。通常,我只是编写一个程序来显示提示,然后用户输入每个数字并按Enter键,将每个值存储在一个数组中,直到输入-1。所以,我的问题是,程序是否可以正确扫描一行数字,如上例所示?我的猜测是会有一些if语句表示如果有一个字符而不是下一个空格然后使它成为一个双位数值,但我不知道我会怎么做。
如果可以的话,如果有人带领我沿着正确的路向前行,我将不胜感激。
答案 0 :(得分:1)
您可以使用Scanner和sentinel值:
List<Integer> list = new ArrayList<Integer>();
Scanner s = new Scanner(System.in);
while(true){
int i = s.nextInt();
if(i == -1) break;
list.add(i);
}
如果不允许使用break,只需重写条件即可使用i的值;
List<Integer> list = new ArrayList<intInteger
Scanner s = new Scanner(System.in);
int i = 0;
while(i != -1){
i = s.nextInt();
if(i != -1) list.add(i);
}
这导致一个额外的条件。