Scanner 类

2023-10-29

目录

1. 什么是Scanner类

2. 创建Scanner类的基本语法

3. 使用next方法

4. 使用nextLine方法

5. next( )与nextLine( )

6. 数据类型的接收方式

7. Scanner类知识扩展

8. 今日箴言


1. 什么是Scanner类

Scanner类是Java中的扫描器,也就是扫描用户在控制台的输入。java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

2. 创建Scanner类的基本语法

Scanner sc = new Scanner(System.in);

通过语法创建Scanner类,还要通过Scanner类的next( )与nextLine( )方法获取输入的字符串,在读取前我们一般需要使用hasNext与hasNextLine判断是否还有输入的数据。

3. 使用next方法

import java.util.Scanner; 
 
public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 从键盘接收数据
 
        // next方式接收字符串
        System.out.println("next方式接收:");
        // 判断是否还有输入
        if (scan.hasNext()) {
            String str1 = scan.next();
            System.out.println("输入的数据为:" + str1);
        }
        scan.close();
    }
}

4. 使用nextLine方法

import java.util.Scanner;
 
public class ScannerDemo {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 从键盘接收数据
 
        // nextLine方式接收字符串
        System.out.println("nextLine方式接收:");
        // 判断是否还有输入
        if (scan.hasNextLine()) {
            String str2 = scan.nextLine();
            System.out.println("输入的数据为:" + str2);
        }
        scan.close();
    }

5. next( )与nextLine( )

next( )

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

nextLine( )

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

6. 数据类型的接收方式

import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入姓名");
        String name = sc.next();

        System.out.println("请输入年龄");
        int age = sc.nextInt();

        System.out.println("请输入性别");
        char gender = sc.next().charAt(0);

        System.out.println("请输入身高");
        double height = sc.nextDouble();

        System.out.println("姓名为" + '\t' + name);
        System.out.println("年龄为" + '\t' + age);
        System.out.println("性别为" + '\t' + gender);
        System.out.println("身高为" + '\t' + height);

    }
}
  • int类型:.nextInt( )
  • double类型:.nextDouble( )
  • 字符串类型:.next( )或 .nextLine( )
  • char类型:.next( ).charAt(0)

7. Scanner类知识扩展

Scanner不仅可以从输入流中读取,也能从文件中读取。以下案例从一个名为 test.txt 的文件中读取整数。

test.txt 文件内容:

1
2 
3
4
5

读取文件内容:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Fileio {
    public static void main(String[] args) throws FileNotFoundException {
        int[] arr=new int[10];
        int i=0;
        Scanner sc=new Scanner(new File("test.txt"));
        while(sc.hasNextInt()) {
            arr[i]=sc.nextInt();
            i++;
        }
        sc.close();
        System.out.printf("读取了 %d 个数\n",i);
        for(int j=0;j<i;j++) {
            System.out.println(arr[j]);
        }
    }
}

 输出结果:

读取了 5 个数
1
2
3
4
5

8. 今日箴言

生命可以随心所欲,但不能随波逐流。

——许愿 . 共勉

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scanner 类 的相关文章

随机推荐

  • TypeError: decoding str is not supported

    问题描述 这里我是要读取 edf文件 常规的文本阅读器是没法正常查看该文件格式的 比如记事本打开存在乱码 这里是解析的时候出现了问题 查询各种正则化表达式 x14 没有任何问题的 报错一直指向这一句 尝试修改都无疾而终 unicode an
  • opencv-腐蚀erode()

    功能 腐蚀是对白色部分 高亮部分 而言的 腐蚀就是原图中的高亮部分被腐蚀 领域被蚕食 效果图拥有比原图更小的高亮区域 腐蚀就是一个平移的结果匀速包含在 原图中的所有点的集合 原型 void cv erode InputArray src O
  • Mac下安装rocketMQ

    一 前提是电脑上已经安装了JDK 没有安装的参照 https jingyan baidu com article 908080221f3cfefd91c80fbf html 二 RocketMQ的下载与安装 下载 官网地址 http roc
  • 利用windows服务器自带的IIS搭建网站并发布公网访问【内网穿透】

    文章目录 1 前言 2 Windows网页设置 2 1 Windows IIS功能设置 2 2 IIS网页访问测试 3 Cpolar内网穿透 3 1 下载安装Cpolar 3 2 Cpolar云端设置 3 3 Cpolar本地设置 4 公网
  • Ocaml 对偶、元组

    1 对偶 元组 Ocaml语言中 构造乘积类型的操作符是 类型A和类型B的乘积类型记 A B 构造乘积类型的元素的操作符是逗号 如果a属于类型A b属于类型B 那么 a b 属于类型A B 二元乘积类型的元素称为对偶 多元乘积类型中的元素称
  • 浅谈C++函数重载

    C 相较于C语言来说 重载是一重大特性 让我们一起简单的回顾一下重载那些事 传送门 函数重载是什么 为什么有函数重载 函数重载是如何实现的 总结 函数重载是什么 函数重载 是函数的一种特殊情况 C 允许在同一作用域中声明几个功能相似的同名函
  • uniapp中图片宽度100%,高度自适应

    uniapp中图片宽度100 高度自适应
  • EditText限制只能输入汉字字母和空格

    这是第一次使用正则表达式来实现输入框限制输入类型 场景是项目中个人信息模块中的姓名字段只能要求输入这些类型 之前只是用其他的方式实现过其他类型的限制输入 这次想到这个方法边让同事帮忙写了个正则 对于正则我可真是心有余而力不足 希望能够帮到大
  • Ajax简介

    目录 Ajax简介 Ajax特点 基础语法 数据编码格式 form表单中 Ajax中 ajax携带数据 回调函数 序列化 响应状态码 Ajax简介 AJAX 全称Asynchronous JavaScript And XML 即异步JS和X
  • react hooks组件间的传值方式(使用ts),子孙传值给祖先组件

    父子组件传值 参考 react hooks组件传值 父传子很简单 只要父组件传参 子组件写好interface childProps和props去接收即可 子传父稍复杂 父组件写一个回调函数 changeTaskState id any g
  • AIGC,驱动架构与业务的新动力

    本期CCF TF第117期 AIGC 驱动架构与业务的新动力 活动由CCF TF架构SIG承办 新浪协办 邀请到了科大讯飞 阿里云 去哪儿网 新浪微博等多位互联网技术专家 共同分享交流如何通过应用AIGC技术 驱动架构和业务高效发展 为工程
  • 【满分】【华为OD机试真题2023 JS】数字加减游戏

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 数字加减游戏 知识点广搜 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 小明在玩一个数字加减游戏 只使用加法或者减法 将一个数字s变成数字t 每个回合 小明可以
  • 修复VMware网络连接失败及设置固定IP

    最近被这个网络折磨疯了 记录一下怎么修复虚拟机网路连接 VM软件安装好后 就有10个网络连接类型可供选择 分别是 VMnet0 VMnet1 VMnet2 VMnet3 VMnet4 VMnet5 VMnet6 VMnet7 VMnet8
  • 数据库操作:汇总数据(聚集函数)

    我们经常需要汇总数据而不用把它们实际检索出来 为此MySQL提供了专门的函数 聚集函数运行在行组上 计算和返回单个值的函数 SQL聚集函数 1 AVG 返回某列的平均值 2 COUNT 返回某列的行数 3 MAX 返回某列的最大值 4 MI
  • java数组及数组函数

    数组求和 1 System out println 1 2 3 4 5 getSum 1 2 3 4 5 5个参数 public static int getSum int numbers 可变长形参 本质为数组 int sum 0 for
  • 服务器系统要用GUID还是MBR,分享win10分区格式MBR和GUID有什么区别 教你区分MBR和GUID格式...

    今天IT天空小编要给大家分享下最新的教程 电脑装win10系统需要选择正确的分区格式 这样电脑才能保持正常运转 如果格式安装错误 电脑就没办法继续运行了 一般情况下 win10分区格式MBR和GUID两种选择 那么这两者有何区别 电脑小白肯
  • 华为ensp,实战案例一一使用模拟器构建局域网络

    1 案例目标 I 通过组网设计 掌握小型网络的组建 路由的设计 对小型网络系统进行分析 提出建网解决方案 2 综合运用路由 VLAN的相关技术 3 综合运用VLAN创建 Access和Trunk接口配置 VLAN间路由配置 DHCP 也址池
  • 民族代码设计

    民族代码和对应民族名称 在开发时 设计民族的数据字典 民族代码 民族名称 01 汉族 01 汉族 02 蒙古族 03 回族 04 藏族 05 维吾尔族 06 苗族 07 彝族 08 壮族 09 布依族 10 朝鲜族 11 满族 12 侗族
  • 基于遗传算法的BP神经网络优化算法(matlab实现)

    1 理论基础 1 1 BP神经网络概述 BP网络是一类多层的前馈神经网络 它的名字源于在网络训练的过程中 调整网络的权值的算法是误差的反向传播的学习算法 即为BP学习算法 BP算法是Rumelhart等人在1986年提出来的 由于它的结构简
  • Scanner 类

    目录 1 什么是Scanner类 2 创建Scanner类的基本语法 3 使用next方法 4 使用nextLine方法 5 next 与nextLine 6 数据类型的接收方式 7 Scanner类知识扩展 8 今日箴言 1 什么是Sca