在使用 Java 的 nextInt() 方法时,我遇到了以下代码:Scanner scan = new Scanner(System.in);int count = scan.nextInt();String string1 = scan.nextLine();我知道 string1 将包含一个空字符串。我的问题是为什么像下面这样调用 nextLine 方法两次会出错:String string1 = scan.nextLine().nextLine();
3 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
这里:
String string1 = scan.nextLine().nextLine();
让我们分解一下:
String string1 = scan.nextLine()
调用nextLine()
扫描仪。它返回一个String。
因此,您的代码归结为
String string1 = someOtherString.nextLine();
当然,这是行不通的。因为 String 类不知道下一行,因此没有这样的方法!
记住:扫描器返回一个字符串,这是两个非常不同的对象。
如果你从盒子里拿出一个鸡蛋,你为什么会期望你可以从你得到的那个鸡蛋中取出另一个鸡蛋?!您可以从同一个盒子中取出两个鸡蛋,但不能从一个鸡蛋中取出一个鸡蛋。
最后:是的,有“流畅”API 的想法,它允许以“这种”方式链接方法调用。但是,可以只对被明确设计正是出于这个情况下工作。
慕尼黑8549860
TA贡献1818条经验 获得超11个赞
scannerObj.nextInt() 不读取以下换行符,因此第一个 nextLine(返回当前行的其余部分) will always return an empty string.
这应该有效:
int count = readInput.nextInt();
readInput.nextLine();
String input=readInput.nextLine();
添加回答
举报
0/150
提交
取消