Java 传递输入后丢失字符串中的数据
我试图将数据写入包含名称和数字的对象,但由于某种原因,名称在使用Java 传递输入后丢失字符串中的数据,java,string,java.util.scanner,Java,String,Java.util.scanner,我试图将数据写入包含名称和数字的对象,但由于某种原因,名称在使用扫描仪初始化后立即丢失其数据(这都在名为private void addPerson()的方法中调用) String addName = "Just an empty String."; System.out.println(addName + " testing"); // (Just an empty String. testing) System.out.println("Name: ");
扫描仪初始化后立即丢失其数据(这都在名为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)
在输入一个名称之后,我试图查看是否存储了该名称,但没有。第一次打印甚至没有在输出中注册。在我按下回车键后,下一个要显示的是最后一行,但它在输出屏幕上“再次”显示。我之所以有input.next()
,是因为没有它,程序将打印所有内容,直到我请求输入整数为止。即使我将字符串设置为默认文本,在尝试通过用户输入将其更改为其他名称后,字符串也会立即变为null
最后,当我对整数执行相同的测试时,它们工作得非常好
关于什么可能导致我的字符串不存储任何内容,有什么建议吗?如何声明变量input
Scanner input = new Scanner(System.in);
要再次打印addName
,请将其更改为
addName = input.next();
System.out.println("2. addName: " + addName);
我认为问题在于,以下是文档:
使扫描器前进超过当前行并返回
被跳过了。此方法返回当前行的其余部分,
不包括末端的任何行分隔符。该位置设置为
下一行的开头
由于此方法继续在输入中搜索
行分隔符,它可以缓冲搜索该行的所有输入
如果没有行分隔符,则跳过
返回:
跳过的那行
也许您可以使用?请发布更详细的代码,修复我遇到的问题。我不知道为什么到现在为止这还不是一个问题,因为我在过去的项目中没有做过很多不同的事情。谢谢!