为什么我不能在 java 中调用 nextLine() 方法两次?

在使用 Java 的 nextInt() 方法时,我遇到了以下代码:


Scanner scan = new Scanner(System.in);

int count = scan.nextInt();

String string1 = scan.nextLine();

我知道 string1 将包含一个空字符串。我的问题是为什么像下面这样调用 nextLine 方法两次会出错:


String string1 = scan.nextLine().nextLine();


料青山看我应如是
浏览 220回答 3
3回答

qq_笑_17

这里:String string1 = scan.nextLine().nextLine();让我们分解一下:String string1 = scan.nextLine()调用nextLine()扫描仪。它返回一个String。因此,您的代码归结为String string1 = someOtherString.nextLine();当然,这是行不通的。因为 String 类不知道下一行,因此没有这样的方法!记住:扫描器返回一个字符串,这是两个非常不同的对象。如果你从盒子里拿出一个鸡蛋,你为什么会期望你可以从你得到的那个鸡蛋中取出另一个鸡蛋?!您可以从同一个盒子中取出两个鸡蛋,但不能从一个鸡蛋中取出一个鸡蛋。最后:是的,有“流畅”API 的想法,它允许以“这种”方式链接方法调用。但是,可以只对被明确设计正是出于这个情况下工作。

慕尼黑8549860

scannerObj.nextInt() 不读取以下换行符,因此第一个 nextLine(返回当前行的其余部分) will always return an empty string.这应该有效:int count = readInput.nextInt();readInput.nextLine();String input=readInput.nextLine();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java