我正在尝试将数据写入包含名称和数字的对象,但是由于某种原因,名称使用Scanner初始化后就丢失了数据(这全都称为private void addPerson()方法)。

    String addName = "Just an empty String.";
    System.out.println(addName + " testing");  // (Just an empty String. testing)
    System.out.println("Name: ");
    addName = input.nextLine();
    System.out.println(addName); // null no matter what is entered
    input.next();
    System.out.println(addName + " again"); // Still null ( again)


输入名称后,我立即尝试查看该名称是否已存储,但是没有存储。第一次打印甚至没有在输出中注册。我按下ENTER键后要显示的下一行是最后一行,但是它在输出屏幕上显示为“再次”。我有input.next()的原因是没有它,该程序将打印所有内容,直到我要求输入整数。即使当我将String设置为默认文本时,在尝试通过用户输入将其更改为其他名称后,String之后也立即变为null。

最后,当我对整数执行相同的测试时,它们可以完美工作。

关于什么可能导致我的String不存储任何内容的任何建议?

最佳答案

如何声明变量input

Scanner input = new Scanner(System.in);


要再次打印addName,将其更改为

addName = input.next();
System.out.println("2. addName: " + addName);

09-26 01:00