为啥我的光标在 NextLine() 之后出现在错误的行上?
Posted
技术标签:
【中文标题】为啥我的光标在 NextLine() 之后出现在错误的行上?【英文标题】:Why is my cursor on the wrong line after NextLine()?为什么我的光标在 NextLine() 之后出现在错误的行上? 【发布时间】:2019-10-22 09:40:54 【问题描述】:public static void main(String[] args)
String word;
System.out.println ("Please type hello");
Scanner scanner = new Scanner(System.in);
word = scanner.nextLine();
System.out.println ("Okay");
我的 nextLine() 方法有一个问题,当我在键盘上键入一个单词时,我希望键盘的光标位于“Okay”的下一行。 但是,它与“Okay”在同一行。
您能否告诉我如何将光标移动到下一行,因为我已经在此操作了 2 小时但找不到任何解决方案?
提前致谢。
我试图找到这个问题的解决方案,但它们都与 nextInt() 相关,我没有在这段代码中使用它。 我也尝试使用“\n”,但没有解决任何问题。
【问题讨论】:
@Arnaud,也试过了,但光标仍然在“Okay”上 关键字的光标?您必须从输入中读取其他值吗?您能否描述一下您的问题,如果可能的话,请附上您想要的截图 【参考方案1】:我怀疑您正在使用 IDE(Eclipse 或其他东西)中的模拟控制台来测试运行您的程序,对吗?这是怎么回事?
简单的答案是:这不像真正的终端。尽管即使光标位于“错误”行并且输入文本将出现在“正确”行中,您也可以只键入,但它不会产生正确终端的完美错觉。
将您的程序导出到可运行的.jar
文件并在您的系统终端/控制台上使用java -jar yourProgramName.jar
运行它,您会很高兴的!
【讨论】:
非常感谢。它实际上解决了我的问题:) 很高兴能帮上忙。这也是一个令人振奋的答案;)这意味着您的程序实际上完全按预期运行,您只需在“即兴”环境中运行它。【参考方案2】:你错过了System.out.println
吗?
public static void main(String[] args)
String word;
System.out.println ("Please type hello");
Scanner scanner = new Scanner(System.in);
word = scanner.nextLine();
System.out.println (word); // << missed line
System.out.println ("Okay");
【讨论】:
我不认为这是问题所在。已经是System.out.println("Okay");
。问题是在 Eclipse 控制台(可能还有其他 IDE 控制台)中,光标位置的处理方式与实际命令行不同。以上是关于为啥我的光标在 NextLine() 之后出现在错误的行上?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 sc.next() 或 sc.nextLine() 在循环中不起作用?
为啥在使用带有 next() 和 nextLine() 的 Scanner 读取 2 个看似相同的字符串时得到 equals() == false?
JavaScanner类nextInt后使用nextLine无法读取输入