Java--next()方法和nextLine()方法的区别

Java--next()方法和nextLine()方法的区别

首先我们来看一下代码:

 import java.util.Scanner;
  public class Demo01 {
      public static void main(String[] args){
          Scanner scanner = new Scanner(System.in);
  ​
          System.out.println("请输入:");
          String str2 =  scanner.nextLine();//用nextLine方法接收
          System.out.println("输出的内容为:"+str2);
  ​
          System.out.println("请输入:");
          String str1 = scanner.next();//用next方法接收
          System.out.println("输出的内容为:"+str1);
  ​
          scanner.close();
      }
  }

  

接下来看一下运行效果:

第一次输入:两个输入都无空格

 

两个输出都和输入一样。

第二次输入:两个输入都有空格

 

前一个输出与输入一致,后一个只输出了空格前的内容。

然后nextLine方法和next方法交换一下位置


 import java.util.Scanner;
  public class Demo01 {
      public static void main(String[] args){
          Scanner scanner = new Scanner(System.in);
  ​
          System.out.println("请输入:");
          String str1 = scanner.next();//用next方法接收
          System.out.println("输出的内容为:"+str1);
  ​
          System.out.println("请输入:");
          String str2 =  scanner.nextLine();//用nextLine方法接收
          System.out.println("输出的内容为:"+str2);
  ​
          scanner.close();
      }
  }

  

再来看一下运行效果:

第一次输入:两个输入都……显然,它并没有给我输入两次的机会……

 

输入第一个后回车输出结果后直接运行结束了……

 

第一个输入有空格,结果分两次输出了,当然也是仅有一个输入就运行结束了……

 

结合上面几次运行效果,可以总结出next方法和nextLine方法的一些区别:

next():
  • 一定要读取到有效字符后才可以结束输入

  • 对输入有效字符之前遇到的空格,next()会自动将其去掉

  • 只有输入有效字符后才将其后面输入的空格作为分隔符或者结束符

  • next()不能得到带有空格的字符串

nextLine():
  • 以Enter为结束符,也就是说,nextLine()方法返回的是输入回车之前的所有字符

  • 可以获得有空格的字符串

  •  

 

posted @ 2023-07-12 12:18  橘色天际线有边界吗  阅读(25)  评论(0)    收藏  举报