首页 > 解决方案 > 如果输入在 JAVA 中没有以数字结尾,为什么会导致我的输出出现额外的空行

问题描述

嗨,我是一名正在研究这个的学生,我的老师要求我们编写一个可以得到正确输出的程序。请求是输入总是以整数 k 开头,并且在第一个输入之后将有 k 行 String 跟随。这意味着如果 k 为 4 并且在输入 k 之后,还有其他 4 行输入,并且所有这些输入都是字符串。并且请求要求我需要忽略第一个 k,只查找第二个 k 并打印第二个 k 之后的 k 行输入作为输出。

我试过的是我写了这些代码

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

有一个空行出来!我尝试了很多来修复它,但我失败了。我想知道如何解决这个问题,我想知道我的想法是否从正确的方面开始!非常感谢!

这是输出

标签: javainputprintln

解决方案


推荐阅读