关于三者直接使用的区别很多博客都有,nextInt 读取下一个int型数据,以空格/回车作为分割符,next()以空格/回车作为分隔符,nextLine()以回车作为分隔符。
但是,如果nextLine()前面有nextInt()或者next(),nextLine会读取前面的回车
package Test;
import java.util.Scanner;
/**
* Author: YCCong
* Date: 2022/4/6 18:31
* Project: WrittenExamination/test1
*/
public class test1 {
public static void main(String [] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
for(int i=0;i<n;i++){
System.out.println("获取第 "+i+" 个输入");
String s=sc.nextLine();
System.out.println(s);
}
}
}
输出如下:第一个输入为空,读的回车。
正确的写法,需要在读取行之前,在额外写一个nextLine();
package Test;
import java.util.Scanner;
/**
* Author: YCCong
* Date: 2022/4/6 18:31
* Project: WrittenExamination/test1
*/
public class test1 {
public static void main(String [] args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
sc.nextLine();//多写一个sc.nextLine();
for(int i=0;i<n;i++){
System.out.println("获取第 "+i+" 个输入");
String s=sc.nextLine();
System.out.println(s);
}
}
}
输出为:
服了,,,,,