我正在尝试使用BufferedReader接受多达100个输入,直到输入整数1为止,然后程序终止。

public static void main(String[] args) throws IOException
{
        //Instantiating an array of size 100, the max size.

        int arrayOfInputs [] = new int[100];

        //Creating the reader.

        System.out.println("Enter some inputs");
        BufferedReader BR = new BufferedReader (new InputStreamReader(System.in));

        //Putting the inputs into a string.

        String stringOfInputs = BR.readLine();

        //Splitting the strings

        String [] sOI = BR.readLine().split(" ");
        for (int i = 0; i < sOI.length; i++)
        {
            //parsing the split strings into integers

            if (Integer.parseInt(sOI[i]) != 0)
            {
                arrayOfInputs[i] = Integer.parseInt(sOI[i]);
                System.out.print(arrayOfInputs[i] + " ");
            }
        }
}


我不明白为什么我的程序无法正常工作。我正在读取输入,将其存储到字符串中,分割字符串,然后将分割后的部分转换为整数,然后存储到大小为100的数组中。我做错了什么?

最佳答案

我正在读取输入,将其存储到字符串中,分割字符串,然后将分割后的部分转换为整数,然后存储到大小为100的数组中。


您要拨打BufferedReader#readLine()两次。第一行被忽略,仅第二行被处理。您应该使用保存第一条读取行的变量:

String stringOfInputs = BR.readLine();  // TODO rename variable to use lowercase, e.g. br

//Splitting the strings

String [] sOI = stringOfInputs.split(" ");
...

10-06 10:37