我正在尝试将数据写入包含名称和数字的对象,但是由于某种原因,名称使用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);