- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当我运行我的程序而不是读取字符串并将其存储在 tempAddress 中时,我的程序只是在我输入之前打印下一行。对前两个使用下一个作品,因为我只使用一个词,但第三个词包含多个词,所以需要其他东西,通过我的研究,我发现 nextLine() 是答案,但我无法像其他人那样让它工作, 提前致谢。
System.out.println("Enter Employee First Name: ");
String tempFirstName = input.next();
employeesArray[i].setFirstName(tempFirstName);
System.out.println("Enter Employee Last Name: ");
String tempLastName = input.next();
employeesArray[i].setLastName(tempLastName);
System.out.println("Enter Employee Address: ");
String tempAddress = input.nextLine();
employeesArray[i].setAddress(tempAddress);
System.out.println("Enter Employee Title: ");
String tempTitle = input.next();
employeesArray[i].setTitle(tempTitle);
最佳答案
基本上,Scanner 默认使用空格对输入进行分词。使用扫描仪的 next() 方法返回空格之前的第一个标记,指针停留在那里。使用 nextLine() 返回整行,然后将指针移动到下一行。
您的 nextLine() 表现不佳的原因是,您之前使用 next() 输入的员工姓氏导致指针停留在行中,因此,当您到达使用 nextLine( ),指针返回先前输入 next() 的剩余部分,这显然是空的(当提供一个单词作为 next() 的输入时)。假设您输入了两个由空格分隔的单词作为姓氏,next() 会将第一个单词存储在姓氏字段中,并且指针在第一个标记之后等待第二个标记之前,一旦您到达 nextLine() 指针返回第二个标记并移动到新线。
解决方案是在读取姓氏输入后执行 nextLine() 以确保您的指针在新行中等待输入地址。
我通过在其中插入一个 input.nextLine() 来更新我的代码,以确保消耗扫描仪输入并将指针移动到下一行。
System.out.println("Enter Employee First Name: ");
String tempFirstName = input.next();
employeesArray[i].setFirstName(tempFirstName);
System.out.println("Enter Employee Last Name: ");
String tempLastName = input.next();
employeesArray[i].setLastName(tempLastName);
//feed this to move the scanner to next line
input.nextLine();
System.out.println("Enter Employee Address: ");
String tempAddress = input.nextLine();
employeesArray[i].setAddress(tempAddress);
System.out.println("Enter Employee Title: ");
String tempTitle = input.next();
employeesArray[i].setTitle(tempTitle);
关于Java 程序无法正确执行 nextLine(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33793747/
代码: public void addTest(int idUser) throws IOException { String date = null; String tec = nu
我在我的网站上写了一个 php 搜索脚本来检查一个包是否存在于文本文件中(我使用了 file_get_contents 。)它需要用户输入的内容并将其与字符串 'BUILD:' 结合起来,下面是一个文
else if(input==5){ String artist = "Bob"; System.out.print("Artist: "); artist = keyboar
我正在使用一个 Java 加密程序,它提示用户从 A-Z、0-9、句号、逗号、感叹号和空格映射他/她自己的字符串序列。 程序运行如下: 用户输入与此不同序列的字符串: String original=
我正在解决一个java问题,我正在创建一个程序来模拟旧的电视问答节目,你赌上你的生命。游戏节目主持人格劳乔·马克思选择一个 secret 词,然后与参赛者聊了一会儿。如果任一参赛者在句子中使用 sec
我试图通过使用空格作为分隔符将“sisestus”分割成不同的单词,但仅使用 sc.next() 不允许我输入带空格的字符串,所以我读到我应该使用 .nextLine (),但根本不起作用。我该如何解
这个问题已经有答案了: Scanner is skipping nextLine() after using next() or nextFoo()? (25 个回答) 已关闭 4 年前。 我有一个程
我正在使用服务器和客户端,其中服务器发送一个字符串,其中包含未知数量的\n。例如: foo1 \n foo2 \n foo3 或 foo1 \n foo2 在客户端,由于套接字的阻塞性质,我无法尝试/
如果我从 catch block 中删除 input.nextLine(),则会开始无限循环。注释说 input.nextLine() 正在丢弃输入。它究竟是如何做到这一点的? import java
基本上,我正在尝试执行一个while 循环,并继续阅读直到行输入为$。读取时,循环应该退出。 但是,我收到一个运行时异常,如 java.util.InputMismatchException。 代码如
我写了一个基本代码来读取不同的数据类型。但我无法输入字符串作为输入。我错过了什么? public class Main { public static void main(String[] args)
为什么nextLine()方法不起作用?我的意思是,在第二次扫描调用后我无法输入任何句子,因为程序运行到最后并退出。 输入:era时代食品食品正确正确sss sss退出 我应该使用另一个 Scanne
考虑代码: import java.util.*; public class TestClass { public static void main(String[] args) {
我是 java 初学者。我想知道 nextLine() 方法如何丢弃您当前的输入?例如假设以下代码: Scanner input = new Scanner(System.in); int a = i
当我运行我的程序而不是读取字符串并将其存储在 tempAddress 中时,我的程序只是在我输入之前打印下一行。对前两个使用下一个作品,因为我只使用一个词,但第三个词包含多个词,所以需要其他东西,通过
我的猜谜游戏一切正常,但是当涉及到询问用户是否想再玩的部分时,它会重复这个问题两次。但是我发现,如果我将输入法从 nextLine() 更改为 next(),它不会重复问题。这是为什么? 这里是输入和
这个问题已经存在: 关闭 9 年前。 Possible Duplicate: Scanner issue when using nextLine after nextInt 我正在尝试创建一个程序,
这个问题在这里已经有了答案: Scanner is skipping nextLine() after using next() or nextFoo()? (24 个回答) 关闭7年前。 我在尝试使
? 1 2
这个问题已经有答案了: Scanner is skipping nextLine() after using next() or nextFoo()? (25 个回答) 已关闭 6 年前。 f
我是一名优秀的程序员,十分优秀!