我正在尝试将数据写入包含名称和数字的对象,但由于某种原因,该名称在使用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不存储任何内容的任何建议吗?
答案 0 :(得分:1)
如何声明变量input
?
Scanner input = new Scanner(System.in);
要再次打印addName
,请将其更改为
addName = input.next();
System.out.println("2. addName: " + addName);
答案 1 :(得分:1)