正在跳过扫描仪nextLine
所以这是我使用的代码:
System.out.println("Create a name."); name = input.nextLine(); System.out.println("Create a password."); password = input.nextLine();
但是当它达到这一点时,它只是说“创建一个名字”。 和“创建密码”。 两个在同一时间然后我必须输入一些东西。 所以它基本上是跳过我需要键入字符串的Scanner部分。 在“创建一个名字”之后。 和“创建密码”。 是打印出来然后输入,名称和密码都改为我输入的内容。如何解决这个问题?
这是全class。 我只是测试所以它实际上不是一个程序:
package just.testing; import java.util.Scanner; public class TestingJava { static int age; static String name; static String password; static boolean makeid = true; static boolean id = true; public static void main(String[] args){ makeid(null); if(makeid == true){ System.out.println("Yay."); }else{ } } public static void makeid(String[] args){ System.out.println("Create your account."); Scanner input = new Scanner(System.in); System.out.println("What is your age?"); int age = input.nextInt(); if(age<12){ System.out.println("You are too young to make an account."); makeid = false; return; } System.out.println("Create a name."); name = input.nextLine(); System.out.println("Create a password."); password = input.nextLine(); return; } }
抱歉我的语法不好。 我不是英国人,所以我很难解释这一点。
nextInt()吃了输入数字而不是EOLN:
Create your account. What is your age? 123 <- Here's actually another '\n'
所以在创建名称之后第一次调用nextLine()接受它作为输入。
System.out.println("Create a name."); name = input.nextLine(); <- This just gives you "\n"
用户Integer.parseInt(input.nextLine())或在读取数字后添加另一个input.nextLine()将解决此问题:
int age = Integer.parseInt(input.nextLine());
要么
int age = input.nextInt(); input.nextLine()
另请参阅此处以获取重复的问题。
这实际上并没有告诉你为什么要跳过这些行,但是当你捕获名称和密码时,你可以使用Console:
Console console = System.console(); String name = console.readLine("Create a name."); char[] password = console.readPassword("Create a password."); System.out.println(name + ":" + new String(password));
您也可以使用next()而不是nextLine()。 我在日食中测试了它。 它的工作正常。
next()
将起作用但它不会在空格后读取字符串。
- 如何在GAEJ中建模实体关系?
- 如何使用Java读取.csv文件并将其数据插入SQL Server?
- 例外:android.view.InflateException:二进制XML文件行#20:错误膨胀类net.simonvt.datepicker.DatePicker
- 我该如何接听电话并挂断电话?
- main()方法可以指定为private还是protected?
- 寻找Android XML教程
- java int size是固定还是变量?
- 带有Java服务帐户的Google云端存储 – 403 Caller没有对存储桶的storage.objects.list访问权限
- 如何在Switch的右侧设置文本位置(如CheckBox)