如图:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String str=sc.nextLine();
System.out.println(str);
}
这里我们想要输入一个整数和一个字符串,但是输入整数后回车,程序直接结束了?!
分析原因:
输入整数后回车,相对于输入一个整数和'\n'。
nextInt() 读取数字,遇到回车('\n')停止,返回回车之前的字符串。
然后轮到nextLine发挥作用,读取接下来一行的内容:回车('\n')
所以,nextLine得到的结果为空
解决方法:
方法一:两个都变成nextLine,把数字先用字符型接收,再转化为整型
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String n=sc.nextLine();
String str=sc.nextLine();
int num= Integer.parseInt(n);
System.out.println(str);
}
方法二:nextLine变成next()
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
String str=sc.next();
System.out.println(str);
}
方法三(不推荐):new一个新的scanner,但是new新对象会占用空间,最好不用
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Scanner in=new Scanner(System.in);
int n=sc.nextInt();
String str=in.nextLine();
System.out.println(str);
}