黑马程序员技术交流社区
标题:
使用nextInt选择后,再进行多次输入中为啥不能正常输入第...
[打印本页]
作者:
臧盼
时间:
2012-12-18 01:25
标题:
使用nextInt选择后,再进行多次输入中为啥不能正常输入第...
import java.util.Scanner;
public class 链表 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int g = input.nextInt();
switch(g){
case 1:
System.out.print("请输入ID: ");
String str=input.nextLine();
System.out.print("请输入name: ");
String stw=input.nextLine();
System.out.print("请输入sex: ");
String stf=input.nextLine();
break;
case 2:
break;
}
}}
为什么不能正常的输入ID,解决方案是什么????求解
作者:
孙辉辉
时间:
2012-12-18 09:14
查Api得到以下:
nextLine
public String nextLine()此扫描器执行当前行,并返回跳过的输入信息。 此方法返回当前行的其余部分,不包括结尾处的行分隔符。当前位置移至下一行的行首。
因为此方法会继续在输入信息中查找行分隔符,所以如果没有行分隔符,它可能会缓冲所有输入信息,并查找要跳过的行。
返回:
跳过的行
nextInt() 接收一个整型字符,nextline()读入一行文本,会读入"\n"字符,但"\n"并不会成为返回的字符串值的一部分、
结合你这个代码就是String str=input.nextLine();是将str设置为空白字符,因为 int g = input.nextInt(); g只接收到了数字,没有接收到"\n",被str接受
结合不同的方法从键盘读取字符输入时,有时不得不包含一条额外的nextLine()调用,以去除行的结束符
Scanner input=new Scanner(System.in);
int g = input.nextInt();
switch(g){
case 1:
[color=Red] String s=input.nextLine();//接收"/n"[/color]
System.out.print("请输入ID: ");
String str=input.nextLine();
System.out.print("请输入name: ");
String stw=input.nextLine();
System.out.print("请输入sex: ");
String stf=input.nextLine();
break;
case 2:
break;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2