一、Scanner简述

Scanner扫描器类本质上是由正则表达式实现的,可以接受任何能产生数据的数据源对象,默认以空白符进行分词(包括\n等),使用各种next方法进行扫描匹配,获取匹配的数据。

二、使用实例

1、示例一:从控制台读取数据

import java.util.*;
public class Demo9 { public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
System.out.println(s);
scanner.close();
} }

输出结果:

Hello world(输入)
Hello world(输出)

结果说明:Sytem.in一般情况都会和Scanner类配合起来使用。

2、示例二:指定定界符

import java.util.Scanner;

public class Demo10 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "1 good 2 good nice good";
Scanner scanner = new Scanner(s);
scanner.useDelimiter("\\sgood\\s");
System.out.println(scanner.nextInt());
System.out.println(scanner.nextInt());
System.out.println(scanner.next());
scanner.close();
} }

输出结果:

1
2
nice good

结果说明:可以使用useDelimiter()方法更改默认的分隔符。

3、示例三:用正则表达式扫描

import java.util.Scanner;
import java.util.regex.MatchResult; public class Demo11 {
public static void main(String[] args) {
String s = "xiaoming2001/9/8\n"
+ "dahuang2005/11/9";
Scanner scanner = new Scanner(s);
String pattern = "(\\w+g)\\d+/(\\d+/\\d+)";
while(scanner.hasNext(pattern)) {
scanner.next(pattern);
MatchResult m = scanner.match();
String name = m.group(1);
String birthday = m.group(2);
System.out.println(name + " birthday : " + birthday);
}
scanner.close();
}
}

输出结果:

xiaoming birthday : 9/8
dahuang birthday : 11/9

结果说明:match()返回最后一次扫描操作(如,next(String pattern) )的匹配结果。

最新文章

  1. SqlServer数据库空间使用情况常用命令
  2. 初步了解JPA
  3. OpenGL阴影,Shadow Mapping(附源程序)
  4. 爆炸吧 js dom ---------> boom
  5. day10_面向对象第五天
  6. TCP总结
  7. java 在方法中新建线程,传参和加锁详解
  8. iOS中的项目新特性页面的处理
  9. tensorflow 学习笔记(转)
  10. js模拟静态方法
  11. iOS - Quartz 2D 二维绘图
  12. 微信公众平台开发,模板消息,网页授权,微信JS-SDK,二维码生成(4)
  13. Logstic回归采用sigmoid函数的原因
  14. redux 最简例子
  15. Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
  16. zsh fg: no job control in this shell.
  17. day25 Python __setattr__
  18. tomcat杂记
  19. 19.JDBC和数据库访问.md
  20. uwsgi+django架构程序内部无法获取全局变量

热门文章

  1. Cogs 604.方程(排列组合+高精度)
  2. Django-批量更新
  3. python 二分查找代码
  4. FFmpeg之avformat_alloc_context()
  5. 后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件
  6. 【MyBatis】【SQL】删除最快纪录诞生,从一千万条记录中删除八百万条仅用2分6秒
  7. mac中的word内容丢失
  8. selenium webdriver常用函数
  9. [PySpark] Build R&D environment
  10. Asp.Net调用后台变量的三种写法