Scanner
Scanner
wrean2013 发表于4年前
Scanner
  • 发表于 4年前
  • 阅读 18
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

解析Html,Document直接生成html()字符串,BufferedReader的构造方法没有字符串,用到了Scanner,Scanner牛逼的地方在于可接收很多种对象构造。String,File,InputStream等均可用起处理,然后根据分隔符或正则扫描整个文本进行处理。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();
也可以:
String input = "1 fish 2 fish red fish blue fish";
 Scanner s = new Scanner(input);
 String line = s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+) fish");
 System.out.println(line);
 MatchResult result = s.match();
 for(int i=0;i<result.groupCount();i++){
	 System.out.println(result.group(i+1));
 }
 s.close();
默认情况下扫描器会将数字解释为十进制形式,除非已经使用  useRadix(int) 方法设置了不同的基数。不管以前是否更改, reset() 方法将把扫描器的基数重置为10 。

delimiter()返回此 Scanner 当前正在用于匹配分隔符的 Pattern。
hasNext() 判断扫描器中当前扫描位置后是否还存在下一段。(原APIDoc的注释很扯淡)
hasNextLine() 如果在此扫描器的输入中存在另一行,则返回 true。
next() 查找并返回来自此扫描器的下一个完整标记。
nextLine()  此扫描器执行当前行,并返回跳过的输入信息。

更具体的见JDK API. Scanner JDK API翻译:20131101

共有 人打赏支持
粉丝 31
博文 100
码字总数 104626
×
wrean2013
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: