Scanner の方法
方法 | 返回值 | 参数 | |
---|---|---|---|
close | void | 关闭扫描仪 | |
ioException | IOException | 输出上次引发的异常(若无为空) | |
delimiter | Pattern | 分隔符 | |
useDelimiter(",") | Pattern | 修改分隔符:为逗号 | |
locale | Locale | 默认区域设置 | |
useLocale | locale | 修改区域设置 | |
radix | int | 默认基数 | |
useRadix | radix | 修改基数 | |
match | MatchResult | 上次匹配结果 | |
toString | String | 转为字符串形式 | |
hasNext | boolean | 检查序列中是否还有元素 | |
next | String | 输出下个字符串 | |
remove | void | ||
hasNext | boolean | pattern | 若下一个与指定模式字符串匹配则返回true,否则空 |
next | String | pattern | 输出指定模式字符串 |
hasNextLine | boolean | 检查是否有下一行 | |
nextLine | String | 输出下一行 | |
findInLine | String | pattern | 查找指定字符串模式的下一个匹配项,忽略分隔符 |
findWithinHorizon | String | pattern horizon | 查找指定字符串构造的模式的下一个匹配项,忽略分隔符 |
skip | pattern | 跳过与指定模式匹配的输入,忽略分隔符 | |
reset | 重置所有显式状态信息 | ||
hasNextInt | boolean | 检查是否有整型 | |
hasNextInt | boolean | radix | 检查是否有指定的基数的整型 |
nextInt | boolean | 输出整型 | |
nextInt | int | radix | 使用指定的基数输出整型 |
( 以下都如上 x 4 ) | |||
Boolean | |||
Byte | |||
Short | |||
Long | |||
Float | |||
Double | |||
BigInteger | |||
BigDecimal |
? 例
此代码允许用户从system.in读取数字
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
此代码允许从文件mynumbers中的条目分配长类型:
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}
扫描器也可以使用除空白之外的分隔符。此示例从字符串中读取以下几项:
(注:\\s*:正则表达式的空格符)*
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();
输出:
1
2
red
blue
此代码可以生成相同的输出,它使用正则表达式一次解析所有四个标记:
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input);
s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
MatchResult result = s.match();
for (int i=1; i<=result.groupCount(); i++)
System.out.println(result.group(i));
s.close();
…
2019/4/25?:明明大部分不常用,也不知道我整理来干哈(*゜ー゜*)