next():读取输入直到遇见空格(不可能读到由空格隔开的两个单词)。 读取输入后将光标放在同一行。
nextInt():只读取int值。 读取输入后将光标放在同一行。
nextLine():读取输入直到遇见“\n”(包括单词之间的空格)。 读取输入后将光标定位到下一行。
import java.util.Scanner;
public class MaxMap {
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
String str = cin.nextLine();
System.out.println("END");
}
}
输入“123”执行后的结果为:
从执行结果上看,貌似直接跳过了 String str = cin.nextLine(); 这行代码。
其实不然,原因是:nextInt()只读取 int 数值,读取输入后将光标放在同一行,这一行的"\n"还没有读取,nextLine()就会读取"\n",并将光标定位到下一行。
如果想要在nextInt()后读取一行,就得在nextInt()之后额外加上cin.nextLine(),代码如下:
import java.util.Scanner;
public class MaxMap {
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
cin.nextLine();
String str = cin.nextLine();
System.out.println("END");
}
}