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+正则的组合可以简化很多字符串的处理,而无需使用大量的代码分割字符串和数值转换。**

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

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