Scanner键盘录入字符串的两种方法:
1.next();
2.nextInt();
一:next() 以空格为结束标志:
注意:
①,当一次录入的字符串中有空格时,会以空格为结束。
②,多个相邻的next(); 可以一次输入,会是用空格切分。
eg:String a= scan.next();String n= scan.next();System.out.println(a + "与" + n);一次录入:123 234
输出结果为:123与234eg2:String a= scan.next();System.out.println("12345678901234567899990");String n= scan.next();System.out.println(a + "与" + n);一次输入:123 123
输出:
12345678901234567899990
123与234
二:nextLine() 以回车换行为结束标志:
①,以回车换行为结束标志
②,nextInt()有可能会接收到上一个键盘输入的回车换行,导致当次的键盘输入为空。
注意: 问题: 在下面的代码中出现了nextLine()接收到了上次输入的回车换行,导致没有执行。
eg:String a= scan.next();String n= scan.next();System.out.println("请输入用户名");String m =scan.nextLine();System.out.println("请输入密码");String q=scan.nextLine();System.out.println("int " + a + " 第二次" + n + " 用户名" + m + " 密码" +q);输入与结果:
123 123 //输入
请输入用户名
请输入密码
234 //输入
int 123 第二次123 用户名 密码234
对于接收到上次留下的回车换行标志,解决方案:
方案一:在需要接收的前面加一个nextLine()用于接收上次录入的回车换行符号。(是一种避免机制。)
方案二:在需要接收的前面,我们重新定义新的Scanner 的对象,使用新的对象来接收需要的键盘录入。
方案一:前一行加nextLine()String a= scan.next();String n= scan.next();System.out.println("请输入用户名");String x = scan.nextLine(); //用于避免上次留下的换行符下一行收到。String m =scan.nextLine();System.out.println("请输入密码");String q=scan.nextLine();System.out.println("int " + a + " 第二次" + n + " 用户名" + m + " 密码" +q);方案二:new ScanenrString a= scan.next();String n= scan.next();System.out.println("请输入用户名");Sanner scan1 = new Scanner(System.in); //用于避免上次留下的换行符下一行收到。String m =scan1.nextLine();System.out.println("请输入密码");String q=scan1.nextLine();System.out.println("int " + a + " 第二次" + n + " 用户名" + m + " 密码" +q);