通过Scanner类来获取用户的输入

创建Scanner对象的基本语法:
Scanner s = new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串 一般需要使用hasNext与hasNextLine判断是否还有输入的数据

使用next方法

  1. import java.util.Scanner;
  2. public class ScannerDemo {
  3. public static void main(String[] args) {
  4. Scanner scan = new Scanner(System.in);
  5. // 从键盘接收数据
  6. // next方式接收字符串
  7. System.out.println("next方式接收:");
  8. // 判断是否还有输入
  9. if (scan.hasNext()) {
  10. String str1 = scan.next();
  11. System.out.println("输入的数据为:" + str1);
  12. }
  13. scan.close();
  14. }
  15. }
  16. /**run*/
  17. $ javac ScannerDemo.java
  18. $ java ScannerDemo
  19. next方式接收:
  20. runoob com
  21. 输入的数据为:runoob

使用nextLine方法

  1. import java.util.Scanner;
  2. public class ScannerDemo {
  3. public static void main(String[] args) {
  4. Scanner scan = new Scanner(System.in);
  5. // 从键盘接收数据
  6. // nextLine方式接收字符串
  7. System.out.println("nextLine方式接收:");
  8. // 判断是否还有输入
  9. if (scan.hasNextLine()) {
  10. String str2 = scan.nextLine();
  11. System.out.println("输入的数据为:" + str2);
  12. }
  13. scan.close();
  14. }
  15. }
  16. /**run*/
  17. $ javac ScannerDemo.java
  18. $ java ScannerDemo
  19. nextLine方式接收:
  20. runoob com
  21. 输入的数据为:runoob com

next() 与 nextLine() 区别

next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获得空白。