Я пытаюсь использовать 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(" ");
...