Scanner类的基本用法

Scanner对象

  • java.util.Scanner是java5的特征, 可以通过Scanner类来获取用户的输入
  • 基本语法:
    Scanner类的基本用法
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

next()

  • 一定要读取到有效字符才能结束输入。
  • 对输入有效字符之前的空白,next()方法会自动将其去掉,这里的空白是指字符之前的空白,有效字符之前输入空格不影响读取到有效字符。
  • 只有输入有效字符后才将其之后的空白作为分隔符或者结束符,这里的空白指空格或回车。
  • next()不能得到带有空格的字符串。
    例:输入如下代码
import java.util.Scanner;//这里就引用了上文所写的java5的特征
public class Demo01 {
    public static void main(String[] args) {
        //创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("Receive in next mode:");
        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            //使用next接收
            String str=scanner.next();//这段代码一旦执行,程序会等待用户输入完毕
            System.out.println("The output is:"+str);
        }
        //凡是使用IO流的类如果不关闭会一直占用资源,用完就关掉
        scanner.close();
    }
}

收到返回信息

Scanner类的基本用法
键入Hello World,回车确定,就得到了输出结果,但是只得到了Hello, next()不能得到带有空格的字符串。
Scanner类的基本用法

nextLine()

  • 以enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
  • 可以获得空白
    继续上面的例子,重新键入上面那一串代码,只不过将方法从next()改为nextLine()。
import java.util.Scanner;
public class Demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Receive in nextLine mode:");
        if (scanner.hasNextLine()){
            String str=scanner.nextLine();
            System.out.println("The output is:"+str);
        }
        scanner.close();
    }
}

然后就能输出完整的输入内容了。

Scanner类的基本用法

最后

上面的代码中的if可以省略

import java.util.Scanner;

public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Receive in nextLine mode:");
        String str=scanner.nextLine();
        System.out.println("The output is:"+str);
        scanner.close();
    }
}

那串if只是说明可以用来判断用户有没有输入字符串,但是既然代码都已经跑起来了,那么这句if等于是脱裤子放屁……

Scanner类的基本用法

Original: https://www.cnblogs.com/ALMARO-Blog/p/16290821.html
Author: Alamro
Title: Scanner类的基本用法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643673/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Sql的字符串匹配 like

    患者信息表: Patients +————–+———+ | Column Name | Type | +————–+——–…

    技术杂谈 2023年6月21日
    0121
  • 使用Java客户端发送消息和消费的应用

    体验链接:https://developer.aliyun.com/adc/scenario/fb1b72ee956a4068a95228066c3a40d6 实验简介 本教程将D…

    技术杂谈 2023年7月11日
    096
  • JWT的验证(转载)

    JWT的验证流程分为两个步骤: 1.签名验证 当接收方接收到一个JWT的时候,首先要对这个JWT的完整性进行验证,这个就是签名认证。它验证的方法其实很简单,只要把header做ba…

    技术杂谈 2023年5月31日
    0105
  • rest_framework框架的认识

    一 路由 可以通过路由as_view()传参 根据请求方式的不同执行对应不同的方法 在routers模块下 封装了很多关于路由的方法 , 最基础的BaseRouter类,给我提供自…

    技术杂谈 2023年6月21日
    0147
  • UML2

    posted on2022-06-13 17:31 莫水千流 阅读(19 ) 评论() 编辑 Original: https://www.cnblogs.com/zhoug2020…

    技术杂谈 2023年6月1日
    0137
  • Yolov3算法详解

    在本文开题处我们就说过,Yolo系列算法时一种典型的”一阶段”目标检测算法,这是Yolo最为出彩的设计,一次性即可完成对目标的定位和识别——这是RCNN等其…

    技术杂谈 2023年7月23日
    095
  • solr英文使用的基本分词器和过滤器配置

    英文应用分词器和过滤器一般配置顺序 索引(index): 1:空格 WhitespaceTokenizer2:过滤词(停用词,如:on、of、a、an等) StopFilter3:…

    技术杂谈 2023年5月31日
    091
  • errcode“:40165,“errmsg“:“invalid weapp pagepath

    问题一、消息模板跳转小程序碰到40165数据看这里{“errcode”:40165,”errmsg”:”invalid …

    技术杂谈 2023年5月30日
    092
  • PC 安装MAC

    http://www.tonymacx86.com/yosemite-desktop-guides/143976-unibeast-install-os-x-yosemite-an…

    技术杂谈 2023年5月31日
    096
  • 计算机领域中随处可见的抽象

    想要管理多种具体的东西,那么需要遵守每种东西的规范。如果想要提供一种通用模式来对这些具体的东西统一管理,需要使用一种古老的技术:抽象。 抽象是将多种具体的东西(管理时需要遵守的规范…

    技术杂谈 2023年5月31日
    0113
  • 在Visual Code中安装对应的工具

    1.打开visual code的扩展管理,查找yarn 安装默认找到的第一个 image.png 安装完之后 点击 重新加载 2.快捷键 ctrl+shift+p打开命令面板 或者…

    技术杂谈 2023年5月31日
    0109
  • quartz框架(九)-JobRunShell

    上篇博文,博主讲了Listener相关的内容。本篇博文,博主将要详细介绍一下JobRunShell的功能。简单的来说,JobRunShell就是Job实例运行时所在的环境,也就是说…

    技术杂谈 2023年7月24日
    084
  • 15. 合并二叉树

    title: 合并二叉树 📃 题目描述 题目链接: 合并二叉树 🔔 解题思路 递归法:采用前序遍历方式进行简单的构造即可,下面是优化的代码; class Solution { pu…

    技术杂谈 2023年7月24日
    0120
  • 如何让一个vue项目支持多语言(vue-i18n)

    这两天手头的一个任务是给一个五六年的老项目添加多语言。这个项目庞大且复杂,早期是用jQuery实现的,两年前引入Vue并逐渐用组件替换了之前的Mustache风格模板。要添加多语言…

    技术杂谈 2023年5月31日
    0107
  • ES查询区分大小写

    ES查询在默认的情况下是不区分大小写的,在5.0版本之后将 string类型拆分成两种新的数据类型, text用于全文搜索(模糊搜索), keyword用于关键字搜索(精确搜索)。…

    技术杂谈 2023年6月21日
    0104
  • 精通正则表达式系列

    这是正则表达式从入门学习到深入掌握各种技巧的教程系列,使用了不同语言描述,但对于正则理念来说是完全通用的。最后还差一篇正则性能优化的文章,有机会再补上。 我已经录了正则表达式的两门…

    技术杂谈 2023年5月31日
    0142
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球