Java学习提要——Scanner基础应用

来源:互联网 发布:qq游戏 for mac 编辑:程序博客网 时间:2024/06/05 23:43

BufferedReader可以解决大文本数据的读取操作
但是BufferedReader有两个问题:

1.读取数据的时候只可以按照字符串返回:public String readLine() throws IOException;
2.所有的分隔符都是固定的。

1.Scanner的基本应用

java.util.Scanner类

//构造方法:public Scanner(InputStream source)Scanner类里面定义了以下两大组方法://1.判断是否有指定数据,Xxx代表不同类型:public boolean hasNextXxx();//2.取出数据,Xxx代表不同类型:public 数据类型 nextXxx();
//以键盘输入为例:import java.util.Scanner;public class Nice {    public static void main(String[] args) throws Exception{        Scanner scan = new Scanner(System.in);  //准备接收输入数据        System.out.print("请输入内容:");        if (scan.hasNext()) {  //现在有输入数据            System.out.println("输入内容:" + scan.next());        }        scan.close();    }}//需要注意的是,如果输入的是字符串,是否存在hasNext()就没那么重要(可以不写)//但是如果是其他类型,那么hasNextXxx()就有意义了//在上面基础上改写,hasNextXxx()if (scan.hasNextDouble()) {  //表述输入的是一个小数    double score = scan.nextDouble();  //省略了转型    System.out.println("输入内容:" + score);} else {  //表示输入的不是一个小数    System.out.println("输入的不是数字,错误");}
//使用正则验证import java.util.Scanner;public class Nice {    public static void main(String[] args) throws Exception{        Scanner scan = new Scanner(System.in);  //准备接收输入数据        System.out.print("请输入生日:");        if (scan.hasNext("\\d{4}-\\d{2}-\\d{2}")) {  //现在有输入数据            String bir = scan.next("\\d{4}-\\d{2}-\\d{2}");            System.out.println("输入内容:" + bir);        } else {            System.out.println("输入的生日格式错误");        }        scan.close();    }}

2.分隔符问题

在Scanner类的构造里面由于接收的类型是InputStream,
所以此时依然可以设置一个文件的数据流,
但是在进行文件读取的时候,我们要考虑分割符问题

设置分隔符
public Scanner useDelimiter(String pattern)

import java.io.File;import java.io.FileInputStream;import java.util.Scanner;public class Nice {    public static void main(String[] args) throws Exception{        Scanner scan = new Scanner(new FileInputStream(new File("E:"+File.separator+"test.txt")));          scan.useDelimiter("\n");  //设置读取的分隔符        while (scan.hasNext()) {            System.out.println(scan.next());        }        scan.close();    }}
0 0
原创粉丝点击