扫描(Scanner类)

java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。下面主要从Scanner对象的创建和用法两方面展开:

1、创建Scanner对象

(1)从控制台读取数据
通过下面方法创建一个Scanner对象后,线程会阻塞,使控制台处于等待输入的状态,当输入完毕,按回车键以后,所输入的内容会全部传给Scanner对象。

Scanner sc = new Scanner(System.in);

(2)读取文件
一般是通过字符串、输入流、文件等来直接构建Scanner对象

FileReader fr = new FileReader("text.txt"); 
Scanner sc = new Scanner(fr);

Scanner sc = new Scanner(String str);

FileInputStream inputStream = new FileInputStream("text.txt");
Scanner sc = new Scanner(inputStream,“UTF-8”);

2、Scanner类的用法
(1)分隔符
Scanner默认使用空格作为分割符来分隔文本,也允许指定新的分隔符

sc.delimiter();//返回此 Scanner 当前正在用于匹配分隔符的Pattern
sc.useDelimiter(",");   //','为分隔符
sc.useDelimiter("\n"); //“\n”换行符(回车)作为输入的分隔符
sc.useDelimiter(" |,|\\."); //使用空格或逗号或点号作为分隔符

(2)next()与nextLine()的区别
next()方法输出的字符串没有空格,而nextLine()方法输出的字符串带空格。原因在于:
nextLine()方法的结束符是回车键,可以返回回车键之间的所有字符;
next()方法则对有效字符之前的空格键、Tab键或回车键自动忽略,对有效字符之后的空格键、Tab键或回车键视作分隔符或结束符。

Scanner sc=new Scanner(System.in);
        System.out.println("请输入第一个字符串:");
//      String str = sc.next();
        String str = sc.nextLine();
        System.out.println("请输入第二个字符:");
        String str1 = sc.next();
        System.out.println(str+"_"+str1);

(3)hasNext()与hasNextLine的区别

sc.hasNext() //判断扫描器的当前扫描位置后是否还存在下一段。
sc.hasNextLine() // 判断扫描器的当前扫描行的后面是否还存在下一行

你可能感兴趣的:(Java,java)