我目前正在根据一组数字制作直方图以进行作业。制作直方图本身对我来说不是问题。但是,按照我的教授发布的有关如何制作程序的示例运行方式,似乎在出现提示用户输入直方图整数的提示时,输入全部在一行中完成。
例:
输入1-100的整数,并让-1终止序列:
5 43 65 8 5 43 4 2 3 4 55 76 4 -1
因此,该程序将不得不一个个地遍历每个字符,而且还必须知道一个数字是否具有伴随的数字以使其成为两位数字,并且还必须知道如何处理空格。通常,我只需要编写一个显示提示的程序,然后用户将输入每个数字并按Enter,将每个值存储在数组中,直到输入-1。
因此,我的问题是,程序是否可以像上面的示例一样正确扫描一行数字?我的猜测是,如果有if语句说如果有一个字符而不是空格,则将其设为两位数,但是我不知道该怎么做。
如果可能的话,如果有人将我引向正确的位置,我将不胜感激。
最佳答案
您可以使用Scanner和哨兵值:
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);
}
这导致了另一种情况。