Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 传递输入后丢失字符串中的数据_Java_String_Java.util.scanner - Fatal编程技术网

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);
我认为问题在于,以下是文档:

使扫描器前进超过当前行并返回 被跳过了。此方法返回当前行的其余部分, 不包括末端的任何行分隔符。该位置设置为 下一行的开头

由于此方法继续在输入中搜索 行分隔符,它可以缓冲搜索该行的所有输入 如果没有行分隔符,则跳过

返回: 跳过的那行


也许您可以使用?

请发布更详细的代码,修复我遇到的问题。我不知道为什么到现在为止这还不是一个问题,因为我在过去的项目中没有做过很多不同的事情。谢谢!