一、nextLine()放在nextInt()后面
Scanner sc1 = new Scanner(System.in);
int i = sc1.nextInt();
String s=sc1.nextLine();
nextLine()不能放在nextInt()后面,因为nextInt()在输入数字后回车,会在缓冲区留下“\n”的换行符,当nextLint()进行时会读取并自动输入null。
解决方案:
1、在nextInt()后面加一行 nextLine(),自动读走“\n”
2、用两个Scanner 对象,第二个对象会忽略之前多余的“\n”
Scanner sc1=new Scanner(System.in);
Scanner sc2=new Scanner(System.in);
int i= sc1.nextInt();
String s = sc2.nextLine();
3、各种数据全用nextLint()接收,再把string->int
Scanner sc1=new Scanner(System.in);
String i= sc1.nextLine();
int n=Integer.parseInt(i);//把字符串作为整型输出
String s = sc1.nextLine();
4、把nextLine换成next(),next会跳过开头的空格、回车
二、输入字符char
1、
Scanner sc=new Scanner(System.in);
char c = sc.next().charAt(0);
2、
接收char:接收字符串->字符数组->从数组里拿到这个字符
Scanner sc = new Scanner(System.in);
//接收字符串
String s = sc.nextLine();
//转换成字符数组
char[] arr=s.toCharArray();
//从数组里拿到这个字符
char c=arr[0];