API学习Scanner
来源:互联网 发布:apache转发至python 编辑:程序博客网 时间:2024/06/01 10:44
package com.wonders.api.date;import java.io.File;import java.io.FileNotFoundException;import java.util.Scanner;import java.util.regex.MatchResult;/** * JDK1.7 * Scanner * (1)一个简单的文本扫描器,可以使用正则表达式来解析原始类型和字符串. * (2)一个扫描器使用一个分隔符模式将其输入插入到令牌中,该模式默认匹配空格。由此产生的令牌可以使用不同的next方法转换为不同类型的值. * (3)扫描器使用的默认空白分隔符是由Character.iswhitespace识别的。reset()方法将重置扫描程序的分隔符的值到默认的空白分隔符,而不管它之前是否发生了更改. * (4)扫描操作可以阻塞等待输入. * (5)next()和hasNext()方法以及它们同基本数据类型的方法(比如nextInt()和hasNextInt()),首先会跳过任何匹配限定符模式的输入,接着尝试返回下一个指令.next和hashNext方法可能阻塞等待进一步的输入。 * (6)一个hasNext方法块是否与它关联的下一个方法是否会阻塞没有连接。 * (7) findInLine(java.lang.String)和findWithinHorizon(java.lang.String, int),skip(java.util.regex.Pattern) 三个方法是独立于分隔符模式操作. * (8)这些方法将尝试与指定的模式匹配,不考虑输入中的分隔符,因此可以在分隔符不相关的特殊情况下使用.这些方法可以阻塞等待更多的输入。 * (9)当扫描器抛出InputMismatchException异常时,扫描器将不会传递导致异常的令牌,这样它就可以通过其他方法检索或跳过。 * (10)依赖于分界符的模式类型,空的指令将会被返回。比如,模式"\\s+"会返回没有空令牌,因为它匹配分隔符的多个实例。这种分隔模式“\ \ s”可以返回空令牌,因为它一次只能传递一个空间。 * (11)扫描器可以读取任何实现 Readable接口的对象中的文本.如果调用底层可读的readable.read(java.nio.charbuffer)方法会抛出一个IOException,那么扫描器假设已经达到了输入的末端. * (12)通过IOException()方法可以检索底层可读的最新的IOException. * (13)当一个扫描器关闭时,如果源头实现了Closeable接口,它将关闭它的输入源. * (14)对于外部没有同步的多线程使用,Scanner不是线程安全的. * (15)除非特别提到,将一个null值传递到Scanner的任何方法中,都将会造成NullPointException异常的抛出. * (16)除非使用useRadix(int)方法设置不同的基数,否则扫描仪将默认将数字解释为小数。 * (17)不管它之前是否发生了更改,reset()方法将重置扫描仪的x值为10。 * (18) * (19) * (20) * @author liyongyong * */public class ScannerTest { public static void main(String[] args) { /** * 例如,这个程序片段允许从System.in读取一个整形 */ System.out.println("请输入一个整数 : "); Scanner scanner = new Scanner(System.in); int num = scanner.nextInt(); System.out.println("输入的值是 : " + num); /** * 读取文件中的内容 */ //获取文件的绝对路径 //System.out.println(ScannerTest.class.getClassLoader().getResource("a.txt")); try { Scanner scanner2 = new Scanner(new File("E:\\MyEclipseProject\\JavaAPI\\bin\\a.txt")); while(scanner2.hasNextLong()){ long along = scanner2.nextLong(); System.out.println(along); } } catch (FileNotFoundException e) { e.printStackTrace(); } /** * 使用分隔符 */ 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 input1 = "1 fish 2 fish red fish blue fish"; Scanner s1 = new Scanner(input1); s1.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)"); MatchResult result = s1.match(); for (int i=1; i<=result.groupCount(); i++) System.out.println(result.group(i)); s1.close(); /** * 从控制台读取一个字符串 */ System.out.println("请输入一个字符串 : "); Scanner sc = new Scanner(System.in); while(sc.hasNext()){ String str = sc.nextLine(); System.out.println("从控制台输入的字符串是 : " + str); } }}
阅读全文
0 0
- API学习Scanner
- scanner学习
- scanner学习
- JDK1.7 API -- Scanner
- java API------Scanner类
- 扫描器Scanner的Api
- API--Object,String,Scanner--1
- API--Object,String,Scanner--2
- Java API 之Scanner类
- JAVA学习笔记6——package+API文档+Scanner类
- java学习日志(3)递归、面向对象的思想、API、Scanner、类及方法、栈、堆
- (21)Java学习笔记——常用对象API /Scanner类
- 学习Scanner类
- Scanner类的学习
- Scanner学习总结
- Java学习之Scanner
- 初步学习Scanner用法
- java Scanner学习
- oracel dblink的简单使用
- Choosing a classification Algorithm
- 51nod 1413 权势二进制
- Leetcode 73. Set Matrix Zeroes
- 问题 C: QAQ & 火星情报局
- API学习Scanner
- linux系统进程管理常用命令
- 模拟模拟交易系统(一)——需求分析
- hdu 6097 Mindis(几何反演)
- eclipse java EE经典绿色版 以及连接远程数据库java代码
- 在tomcat调试成功后在浏览器进入页面的路径
- Mindis(hdu6097)
- HDU Billboard(线段树)
- android Spinner控件设置下拉状态的条目item字体颜色