如何将一个扫描仪用于整数和文本?

时间:2017-04-25 17:26:07

标签: java java.util.scanner

我需要制作一个程序,允许我向用户询问一些数字并继续这样做,直到用户输入“q'但我似乎无法让hasNextInt工作,因为我认为它的工作原理。我是Java的新手并且正在做地面课程。

这是我到目前为止所做的事情

public class Matte 
{
    public static void main (String[] args)
    {

        int r1 = 0;
        int h1 = 0;
        int r2 = 0;
        int h2 = 0;
        int level = 1;

        String choice = new String();

        Scanner values = new Scanner(System.in);
        values.useDelimiter("\\s");

        if (level == 1)
        {   
            if(!values.hasNextInt())
                r1 = values.nextInt();
            else choice = values.nextLine();
            if(!values.hasNextInt())
                h1 = values.nextInt();
            else choice = values.nextLine();
            if(!values.hasNextInt()) 
                r2 = values.nextInt();
            else choice = values.nextLine();
            if(!values.hasNextInt()) 
                h2 = values.nextInt();
            else choice = values.nextLine();
        }    

    }
}

我想在"选择"中保存扫描仪中输入的文字内容。变量

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我没有真正理解你的问题,但是这里有一个解决你的问题的方法,将这些整数添加到ArrayList并在用户键入q'时停止程序。希望它能帮到你。干杯!

public class Matte 
{
    public static void main (String[] args)
    {

        ArrayList<Integer> numbers = new ArrayList();
        int level = 1;

        String choice;

        Scanner values = new Scanner(System.in);
        values.useDelimiter("\\s");

        if (level == 1)
        {   
            while(true){
                choice = values.nextLine();
                if(choice.equals("q"))
                    break;
                else
                    numbers.add(Integer.parseInt(choice));
            }
        }    

    }
}