#java #input #println
#java #ввод #println
Вопрос:
Привет, я студент, который изучает это, и мой учитель просит нас написать программу, которая могла бы получить правильный вывод. Запрос заключается в том, что ввод всегда будет начинаться с целого числа k, и после первого ввода будет следовать k строк String. это означает, что если k равно 4 и после ввода k, есть еще 4 строки ввода, и все эти входные данные являются строками. И в запросе указано, что мне нужно игнорировать первый k, искать только второй k и печатать k строк, введенных после второго k, в качестве выходных данных.
Что я пробовал, так это то, что я написал этот код blow
public class CS220_A1 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int firstInt = input.nextInt();
String temp = new String();
for (int i = 0; i < firstInt 1; i ) {
temp = input.nextLine();
}
int secondInt = input.nextInt();
for(int j = 0; j < secondInt 1; j ) {
System.out.println(input.nextLine());
}
}
}
Входные данные, приведенные в качестве примера, являются
4
bGTRYLEsJhStPVDMdmoxZle
ZYEDXeMaGotpjAtpcaJQnHyTDXNnhgYMOpIdMBvn
oTRJptFnaMRZNuapwqWYbXIEOothm
aLKzsZAIuyW
3
oi
oii
oiii
0
и выходные данные должны быть
oi
oii
oiii
Мой код хорошо работает с этим образцом, однако, когда я провожу тест самостоятельно, я обнаружил, что если ввод не заканчивался целым числом (или, возможно, цифрой), результат будет другим.
если я разрешу ввод как
0
3
asc
azxv
aabbb
На выходе будет только «asc» и «azxv», пока я не нажму кнопку ввода.
Но он не повернулся вправо, после того, как я нажму кнопку ввода, в результате появится пустая строка, которая приведет к неправильному выводу.
Не уверен, работает картинка или нет. Я решаю поместить вывод здесь, неверный вывод будет показан, как показано ниже
asc
azxv
и после того, как я нажимаю кнопку ввода, она отображается как
asc
azxv
aabbb
Там появляется пустая строка! И я много пытался это исправить, но у меня не получилось.
Я хочу знать, как я могу решить эту проблему, и я хочу знать, начинается ли моя идея с правильной стороны!
Большое спасибо!
Комментарии:
1.
for (int i = 0; i < firstInt 1; i )
неверно, как и другой цикл. Первая должна бытьfor (int i = 0; i < firstInt; i )
, и аналогично для второй.2. @MarquisofLorne Я пробовал это, но после того, как я изменил его, он будет выводить только «asc» и «azxv», после вывода этих двух строк программа завершается, однако я хочу, чтобы выводом были все «asc azxv aabbb»…
3. Вам нужно вызывать
nextLine()
после каждогоnextInt()
вызова, чтобы использовать конец его строки.