当前位置: 代码迷 >> 综合 >> 键盘录入 Scanner 关于字符串的录入问题以及解决方式
  详细解决方案

键盘录入 Scanner 关于字符串的录入问题以及解决方式

热度:0   发布时间:2024-03-08 13:08:58.0

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);