Java中的Scanner类中的方法next()与nextLine()都是吸取输入控制台输入的字符
①next()方法不会吸取字符前和后的空格/Tab,只吸取字符,开始吸取字符(字符前后不算)
直到遇到空格/Tab/回车截取吸取
②nextLine()吸取字符前后的空格/Tab键,也会吸收回车符
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(str);
String str = sc.nextLine();
System.out.println(str);
}
}
对于第一种情况: 从控制台输入:abcd abcd abcd,输出的结果是:
因为next方法遇到了空格停止接收,所以只输出了abcd,nextLine方法开始从空格处开始接收直到遇到了第一个回车那么结束接收,说明nextLine方法可以接收空格,next方法遇到空格等会停止接收
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(str);
}
}
③ nextLine方法会吸收回车符,next方法不会
测试nextLine方法: 从控制台输入:1234 回车 56
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
System.out.println(s);
s = sc.nextLine();
System.out.println(s);
s = sc.nextLine();
System.out.println(s);
sc.close();
}
}
代码输出结果为:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
System.out.println(s);
s = sc.next();
System.out.println(s);
s = sc.next();
System.out.println(s);
sc.close();
}
}
可以从控制台中看到next方法不会把回车符也输出来,它遇到回车符会停止接受的
综述:
①next()方法不会吸取字符前和后的空格/Tab,只吸取字符,开始吸取字符(字符前后不算)
直到遇到空格/Tab/回车截取吸取