Java中next()方法与nextLine()方法的区别

  1. 共同点: 二者都是读取一个字符串。
  2. 不同点

    • 但是next()方法是碰到定界符(the delimiter)就会暂停输入,所以它并不能输入空格、Tab键这种“特殊”的字符;
    • nextLine()方法是遇到回车才算输入结束,所以就会把空格、Tab键这种”不特殊”的键也包括进去。
    • 另外,next()方法是不会接受换行字符的,意思是说,你在控制台输入字符的时候,无论敲多少次回车,都不会影响你的第一个字符的输入。
    • 但是nextLine()方法却不同,它接收回车的输入,并把它作为定界符。
      1. 所以平常我们在使用控制台输入的时候,就要牢记这种使用nextLine()方法导致吃掉我们定义的字符串吸收了回车,导致无法顺利读入我们想要的字符串的情况!如下例:
        package liu.shen.pat.jan;
        import java.util.Scanner;
        public class Main {
        public static void main(String args[]) {
            input();
        }
        
        public static void input() {//输入数据
            Scanner scan = new Scanner(System.in);
            int number = scan.nextInt();//输入一个整型数据 number,并按下回车当做结束
        
            String str = scan.nextLine();
            System.out.println("the number your input is:"+number);
            System.out.println("the string your input is:"+str);
        
        }
        }

    运行的效果如下所示:
    Java中next()方法与nextLine()的区别_# Java