Scanner对象

 

Scanner对象是用来实现程序与人的交互,属于Java.util下的,是Java5的新特性,Scanner类是用来获取用户输入的

 

基本语法

Scanner sc = new Scanner(System.in);
  • 通过Scanne类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判读是否还有输入的数据。

 

应用

next();

nextLine();

 

这两个方法大同小异,但是还是有区别的

  • next()方法

    package com.simple.scanner;

    import java.util.Scanner;

    /**
    * @author huYuHao
    * @version 1.0
    * @create 2021/3/10
    * @since 1.8
    */
    public class Demo01 {

       public static void main(String[] args) {
           Scanner sc = new Scanner(System.in);

           System.out.println("使用next方式接收:");

           //判断用户有没有舒服字符串
           if (sc.hasNext()){
               //使用next方式接受
               String str = sc.next();
               System.out.println("输入的内容为:" + str);
          }
           //凡是属于IO流的类如果不关闭就会一直占用资源,所以要养成好习惯用完就关闭
           sc.close();

      }
    }

    使用以上代码获取用户输入,举个例子

    我输入HelloWorld

image-20210310143706732

很正常,打印的确实是我输入的数据

但是我要是在中间加一个空格 Hello World,那结果会是什么样的呢?

image-20210310143820713

会发现后面的 World消失了,这是因为next()方法会把空格当成截断符,导致空格后面的World没有输出

 

nextLine()方法

先上代码

package com.simple.scanner;

import java.util.Scanner;

/**
* @author huYuHao
* @version 1.0
* @create 2021/3/10
* @since 1.8
*/
public class Demo02 {

   public static void main(String[] args) {
       Scanner sc = new Scanner(System.in);

       System.out.println("使用nextLine方式接收:");

       if(sc.hasNextLine()){
           String str = sc.nextLine();
           System.out.println("输出的内容为:" + str);
      }

       sc.close();
  }
}

我们输出Helloworld

image-20210310144112270

没有任何问题

 

我输出Hello World

image-20210310144142973

没得问题,直接输出成功,nextLine()会更加稳健

End

 

遇见狂胜说bilibili

 

posted @ 2021-03-10 14:45  SHE_HYH  阅读(105)  评论(0)    收藏  举报