【Java笔记(5)】扫描流Scanner类

Scanner扫描流

  • 一、JDK
    • 1.构造方法
    • 2.主要函数
  • 二、代码
    • 1、完整代码
    • 2、运行结果

一、JDK

1.构造方法

  • 用InputStream作为输入(System.in)
    public Scanner(InputStream source) {
     
        this(new InputStreamReader(source), WHITESPACE_PATTERN);
    }
  • 用File作为输入
  public Scanner(File source) throws FileNotFoundException {
     
        this((ReadableByteChannel)(new FileInputStream(source).getChannel()));
    }

2.主要函数

  1. 判断是否有下一个:public boolean hasNext()
  2. 获取内容:public String next()
  3. 设置换行符:public Scanner useDelimiter(String pattern)
        //如果有输入东西,就将东西输出和
        if(sc.hasNext()){
     
            data= sc.next();
            System.out.println(data);
        }
        //用Scanner读取文件
        sc=new Scanner(new File ("src/io/xlu.txt"));
        //设置换行符号,没有的话会把空格当换行。
        //利用定界符号
        sc.useDelimiter("\n");
        while(sc.hasNext()){
     
            System.out.println(sc.next());
        }

二、代码

1、完整代码

package io;


import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.io.File;

/**
 * 读取文件用Scanner或者BufferedRead,首选Scanner
 *
 * @ClassName: ScannerDome
 * @Author: Xlu103
 * @Date: 2020-06-04 22:07
 **/
public class ScannerDome {
     
    public static void main(String[] args) throws Exception {
     
        Scanner sc = new Scanner(System.in);
        String data=null;
        System.out.print("请输入东西:");

        //如果有输入东西,就将东西输出和
        if(sc.hasNext()){
     
            data= sc.next();
            System.out.println(data);
        }

        //利用hasNext()进行正则匹配
        System.out.print("请输入生日");
        if(sc.hasNext("\\d{4}--\\d{2}--\\d{2}")){
     
            data=sc.next();
            System.out.println(new SimpleDateFormat("yyyy-MM-dd").parse(data));
        }

        //用Scanner读取文件
        sc=new Scanner(new File ("src/io/xlu.txt"));
        //设置换行符号,没有的话会把空格当换行。
        //利用定界符号
        sc.useDelimiter("\n");
        while(sc.hasNext()){
     
            System.out.println(sc.next());
        }
    }
}

2、运行结果

请输入东西:123
123
请输入生日1999--10--07
Sat Jan 24 00:00:00 CST 1998
package io;


import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.io.File;

/**
 * @ClassName: ScannerDome
 * @Author: Xlu103
 * @Date: 2020-06-04 22:07
 **/
public class ScannerDome {
     
    public static void main(String[] args) throws Exception {
     
        Scanner sc = new Scanner(System.in);
        String data=null;
        System.out.println("请输入东西:");

        //如果有输入东西,就将东西输出和
        if(sc.hasNext()){
     
            data= sc.next();
            System.out.println(data);
        }

        //利用hasNext()进行正则匹配
        System.out.println("请输入生日");
        if(sc.hasNext("\\d{4}--\\d{2}--\\d{2}")){
     
            data=sc.next();
            System.out.println(new SimpleDateFormat("yyyy-MM-dd").parse(data));
        }

        //用Scanner读取文件
        sc=new Scanner(new File ("src/io/xlu.txt"));
        while(sc.hasNext()){
     
            System.out.println(sc.next());
        }
    }
}

Process finished with exit code 0

你可能感兴趣的:(JAVA学习笔记)