为什么 NetBeans 不等待用户输入?



所以我有一个问题,我的代码运行时(我刚刚开始昨天,所以请帮助)。NetBeans不等待用户输入,因此它只是在输出中说一些奇怪的东西,在我的文本旁边。

package javalol;
/**
*
* @author sandy_000
*/
public class JavaLol {
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    String Printf="Please enter your first name:";
    String Printl="Please enter your last name:";
    System.out.println(Printf);
    String firstName=System.in.toString();
    System.out.println(Printl);
    String lastName=System.in.toString();
    Friend friend=new Friend(firstName, lastName);
    System.out.println("How are ya, "+friend+"?!");
 }
}
输出:

Please enter your first name:
Please enter your last name:
How are ya, Friend{firstName=java.io.BufferedInputStream@15db9742, lastName=java.io.BufferedInputStream@15db9742}?!
BUILD SUCCESSFUL (total time: 2 seconds)

System.in不读取您的输入,因为它是标准输入的变量。这就是输出为java.io.BufferedInputStream@15db9742的原因。

您必须使用Scanner来读取输入(请记住为此导入java.util.Scanner)。

像这样:

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String Printf="Please enter your first name:";
    String Printl="Please enter your last name:";
    System.out.println(Printf);
    String firstName=scan.next();
    System.out.println(Printl);
    String lastName=scan.next();
    Friend friend=new Friend(firstName, lastName);
    System.out.println("How are ya, "+friend+"?!");
    scan.close();
 }

为了更好的代码风格,最好写printfprintl,而不是PrintfPrintl

当您没有为Friend类覆盖toString()方法时,您将在输出中得到另一个问题。因此,最好使用getter方法作为变量,并将输出更改为:System.out.println("How are ya, " + friend.getFirstName + friend.getLastName() + "?!");

相关内容

  • 没有找到相关文章

最新更新