java中scanner意思_Java中的Scanner

java中scanner意思_Java中的ScannerScanner对象是一个简单的文本扫描仪,**可以使用正则解析文本字符串**。我们使用Scanner最多的地方可能就是读取键盘输入,但是Scanner的功能远比此强大。对于Scanner的进一步理解还是在LeetCode的一道算法题上,题目大意是输入一组分式加法构成的字符串,要求输出分式相加的结果。首先是输入”-2/3+2/3-4/5″,接着求其和。首先第一步需要解析字符串为所需的数据,我使用了s…

大家好,又见面了,我是你们的朋友全栈君。

Scanner对象是一个简单的文本扫描仪,**可以使用正则解析文本字符串**。我们使用Scanner最多的地方可能就是读取键盘输入,但是Scanner的功能远比此强大。对于Scanner的进一步理解还是在LeetCode的一道算法题上,题目大意是输入一组分式加法构成的字符串,要求输出分式相加的结果。首先是输入”-2/3+2/3-4/5″,接着求其和。首先第一步需要解析字符串为所需的数据,我使用了split()的方式,有位大哥就使用了`scanner.useDelimiter(pattern)`方法,直接将数据解析到了Scaner对象中。

# Scanner的工作方式

Scanner的分隔符模式将输入分割到令牌(token,就是临时存储区域),默认情况下以**空格**分割。然后可以使用各种next方法将得到的令牌转换成不同类型的值。这种工作模式类似于String的split()方法,但Scanner更加强大。

# Scanner的应用

## 读取输入流

最常使用的是让Scanner扫描输入流。

“`

Scanner scan = new Scanner(System.in);

if (scan.hasNextLine()) {

String str = scan.nextLine();

}

scan.close();

“`

Scanner将读取输入流,并可以使用一系列的next()方法将输入流字符转化为不同类型的数值。

## 读取文件

“`

Scanner scan = null;

try {

scan = new Scanner( new File(“bin/org/xli/scanner_string/number.txt”));

while (scan.hasNext()) {

System.out.println(scan.nextDouble());

}

} catch (FileNotFoundException e) {

}

scan.close();

“`

>3.1

3.14

3.141

文件读取也是以空白分割(空格、回车、制表符都可)。

## 读取字符串

“`

Scanner scan = new Scanner(“3.1 3.14 3.141”);

while (scan.hasNextDouble()) {

System.out.println(scan.nextDouble());

}

scan.close();

“`

>3.1

3.14

3.141

## useDelimiter(pattern)方法

该方法将此扫描仪的划分模式设置为从指定的`pattern的模式`,并返回一个新的Scanner对象。

“`

String str = “1/2+1/3-1/2”;

Scanner scanner = new Scanner(str);

Scanner scan = scanner.useDelimiter(“/|\\+|(?=-)”);

while (scan.hasNextInt()) {

System.out.println(scan.nextInt());

}

scan.close();

scanner.close();

“`

>1

2

1

3

-1

2

上述代码使用`/`或`+`或`-`之前的””作为分隔符,将输入串分割为纯粹的数字,简化处理。File和InputStream类似。

**总结:使用Scanner+正则的组合可以简化很多字符串的处理,而无需使用大量的代码分割字符串和数值转换。**

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156920.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • (深度学习)Pytorch之dropout训练

    (深度学习)Pytorch之dropout训练(深度学习)Pytorch学习笔记之dropout训练Dropout训练实现快速通道:点我直接看代码实现Dropout训练简介在深度学习中,dropout训练时我们常常会用到的一个方法——通过使用它,我们可以可以避免过拟合,并增强模型的泛化能力。通过下图可以看出,dropout训练训练阶段所有模型共享参数,测试阶段直接组装成一个整体的大网络:那么,我们在深度学习的有力工具——Pytor…

    2022年5月1日
    175
  • linux 安装 node_手机安装node环境

    linux 安装 node_手机安装node环境Linux安装node环境1.去node官网下载node安装包2.解压并重命名tar-xvfnode-v14.15.5-linux-x64.tar.xz#解压mvnode-v16.14.2-linux-x64node#重命名为node3.全局引用,创建npm和node软连接ln-s/usr/local/dev/nodejs/node/bin/npm/usr/local/bin#创建npm软连接,其中/usr/local/dev/nodejs/node/bin/

    2022年9月13日
    1
  • PyCharm2021安装教程

    PyCharm2021安装教程Windows安装pycharm教程新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导出与导入导出导入下载安装PyCharm1、进入官网PyCharm的下载地址:http://www.jetbrains.com/pycharm/downl

    2022年5月16日
    54
  • mac电脑 datagrip 激活码_通用破解码

    mac电脑 datagrip 激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    49
  • python代码情话_python怎么运行代码

    python代码情话_python怎么运行代码做微信聊天机器人,实现步骤:1.获取微信的使用权,即python脚本能控制微信收发信息。2.python脚本收到聊天信息后,要对该信息进行处理,返回机器人的回应信息。我这里有一套Python从入门到精通的全套资料免费送给大家,但是要加我的Python学习Q群:808713721才可以免费领取,因为我在里面会私发给大家。简易版代码fromwxpyimport*#apikey在http://www.t…

    2022年9月2日
    7
  • leetcode 通配符匹配_部分匹配查询中有关通配符

    leetcode 通配符匹配_部分匹配查询中有关通配符给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa”p = “*

    2022年8月8日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号