我目前正在根据一组数字制作直方图以进行作业。制作直方图本身对我来说不是问题。但是,按照我的教授发布的有关如何制作程序的示例运行方式,似乎在出现提示用户输入直方图整数的提示时,输入全部在一行中完成。

例:

输入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);
}


这导致了另一种情况。

09-04 06:38
查看更多