类 Scanner
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地。
Scanner一般用于用户输入,可以对输入的文本进行操作
重要方法摘要
|
useDelimiter(Pattern pattern) 将此扫描器的分隔模式设置为指定模式。 |
hasNext() 如果此扫描器的输入中有另一个标记,则返回 true。 |
|
nextLine() 此扫描器执行当前行,并返回跳过的输入信息。 |
|
next() 查找并返回来自此扫描器的下一个完整标记。 |
Scanner可以使用不同于空白的分隔符。下面是从一个字符串读取若干项的例子
String input = "1 fish 2 fish red fish blue fish"; Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*"); System.out.println(s.nextInt()); System.out.println(s.nextInt()); System.out.println(s.next()); System.out.println(s.next()); s.close();
二.如果说Scanner使用简便,不如说Scanner的构造器支持多种方式,构建Scanner的对象很方便。
可以从字符串(Readable)、输入流、文件等等来直接构建Scanner对象,有了Scanner了,就可以逐段(根据正则分隔式)来扫描整个文本,并对扫描后的结果做想要的处理。
1.从控制台输入
public class TestScanner { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("请输入字符串:"); while (true) { String line = s.nextLine(); if (line.equals("exit")) break; System.out.println(">>>" + line); } } }
2.从文件构造Scanner的举例
import java.io.File; import java.io.IOException; import java.util.Scanner; public class ScannerTest { public static void main(String[] args) throws IOException{ Scanner sc=new Scanner(new File("D:\\txt.txt")); while(sc.hasNextLine()) { System.out.println(sc.nextLine()); } sc.close(); } }3.使用分隔符
public static void main(String[] args) throws FileNotFoundException { Scanner s = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf ......asdfkl las"); s.useDelimiter(" |,|\\."); while (s.hasNext()) { System.out.println(s.next()); } }
输出:
123
asdf
sd
45
789
sdf
asdfl
sdf
sdfl
asdf
注:个人想说,这里只是列出了部分重要的方法和使用,想要有更细微的使用,一定要阅读API文档
转自:https://blog.csdn.net/gongxifacai_believe/article/details/54933287
https://blog.csdn.net/scythe666/article/details/51980596/