Day004 Scanner对象

Scanner对象


作用

我们可以通过Scanner类来获取用户的输入


所属包

​ java.util.Scanner java 工具类下


基本语法

Scannner s=new Scanner(System.in)

常用方法

  • next()、nextLine()获取输入的字符串
  • hasNext()、hasNextLine()一般在获取之前都要用这两个方法判断是否还有输入的数据

代码示例

    //创建一个扫描对象,用于接收键盘数据
    Scanner scanner=new Scanner(System.in);

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

    //判断用户有没有输入字符串
    if(scanner.hasNext()){
        //使用next方式接收
        String str=scanner.next();//程序等待用户输入完毕
        System.out.println("输入的内容为:"+str);
    }

    //凡是属于I/O流的类如果不关闭就会一直占用资源,要养成良好习惯用完就关掉
    scanner.close();

输出结果

使用next方式接收:
hello world
输入的内容为:hello

可以发现只输出了hello,没有输出world,换成nextline试一下


 Scanner scanner = new Scanner(System.in);

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

 //判断是否还有输入
 if(scanner.hasNextLine()){
      String str = scanner.nextLine();
      System.out.println("输入的内容为:"+str);
 }

 scanner.close();

输出结果

使用nextLine方法接收
hello world
输入的内容为:hello world

可以发现正确了,接下来我们来看一下next()和nextline()的区别


next()和nextline()的区别

  • next()

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

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

    2. 可以获得空白。


看看视频可能效果更好

上一篇:scanner用户交互


下一篇:【Java笔试】输入输出模板