Я работаю над заданием для класса, и я застрял в самом начале. Я не уверен, как идти о пользовательском вводе, я подробно расскажу, когда я расскажу вам, что такое назначение ....String Arrays и BufferedReader
Первый вход будет ответом на тест из десяти ответов T или F , Затем он вводит пользовательский ввод для первого и последнего имени учащихся, ID #, а затем отвечает на «викторину» T/F, пользователь вводит столько студентов, сколько захочет, а затем «ZZZZ» завершает работу. Все входные данные пользователя вводятся в одну запись, и именно там у меня возникают проблемы.
Пример ввода для программы:
1 T T T T T F T T F F
Bobb, Bill 123456789 T T T T T F T T F F
Lou, Mary 974387643 F T T T T F T T F F
Bobb, Sam 213458679 F T F T f t 6 T F f
Bobb, Joe 315274986 t t t t t f t t f f
ZZZZ
, который будет производить вывод: Результаты для викторины 1:
123-45-6789 Bill Bobb 10
974-38-7643 Mary Lou 9
213-45-8679 Sam Bobb 5
315-27-4986 Joe Bobb 10
The average score is 8.5
Мы должны использовать BufferedReader и все входа вводится все вместе. Проблема, с которой я сталкиваюсь, - я не знаю, как это сделать. Сначала я решил, что я разделил бы вход на новую строку и создаю массив, где каждый индекс является новой строкой, но теперь у меня только печатает «ZZZZ», и я не могу понять, почему? Я также не знаю, как сравнить первый индекс (ключ ответа) со всеми ответами студентов. Как только я разделяю входные строки новыми, могу ли я разбить каждый индекс в этом массиве по пробелу? Любая помощь очень ценится! Пожалуйста, имейте в виду, что я очень новичок в Java.
То, что я до сих пор (я знаю, что его не так много, но я просто застрял прямо спереди) ....
public class CST200_Lab4 {
public static void main(String[] args) throws IOException {
String inputValue = " ";
String inputArr[] = new String[13];
String answerKey = null;
String numStudents[];
InputStreamReader ISR = new InputStreamReader(System.in);
BufferedReader BR = new BufferedReader(ISR);
while(!(inputValue.equalsIgnoreCase("ZZZZ"))) {
inputValue = BR.readLine();
inputArr = inputValue.split("\\r+");
answerKey = inputArr[0];
}
System.out.println(answerKey);
}
}
Это дает исключение из-за пределов ... Кроме того, мой профессор будет буквально отмечать очки, если мы используем Break в наших циклах, а не в шутку. – NoobCoderChick
Это прекрасно работает !! и приходите на человека, вы можете просто изменить логику if, чтобы устранить разрыв. В какой строке вы получаете исключение? –
Эта строка .... \t if (inputArr [i + 3] .equalsIgnoreCase (отвечает [i + 1])) – NoobCoderChick