Java-在使用扫描仪获取用户输入之前不显示打印语句(NetBeans问题?)



我试图在NetBeans 12.6中做一个非常简单的用户输入,在这里我问一个问题并让用户回答。当我使用System.out.println("question"(显示问题时,一切都很好,但当我切换到System.out.print("question"(时,代码的行为不正常。下面是完整的代码。

import java.util.Scanner;
public class SimpleInput {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Enter your name: "); 
String userName = scan.nextLine();
System.out.println("Your name is " + userName);
}
}

预期行为(和实际行为(:

Enter your name: 
Ryan
Your name is Ryan

但是,当我切换到print而不是println时,它会在询问问题之前等待用户输入!下面是完整的代码。

import java.util.Scanner;
public class SimpleInput {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("Enter your name: "); 
String userName = scan.nextLine();
System.out.println("Your name is " + userName);
}
}

期望行为:

Enter your name: Ryan
Your name is Ryan

实际行为:

Ryan
Enter your name: Your name is Ryan

我应该为一门大学课程重新创建一些东西,在这个课程中,用户输入与问题收集在同一行,所以这里不能简单地使用println而不是print。根据围绕SO的其他搜索,这可能是NetBeans的问题,而不是我的代码中的问题。然而,这似乎。。。疯子NetBeans真的不能正确地做这么简单的事情,不是吗?

我在使用";Java with Maven";。然后我用";Java with Ant";,而不是";Java with Maven";,创建项目时。它解决了问题。

最新更新