new Scanner(System.ln)创建了一个scanner,控制台一直等待输入,直至敲回车键结束,把所有输入的内容传给Scanner,作为扫描对象,如果要获取输入的内容,则只需调用Scanner的nextLine()方法即可。
scanner可以从字符串、输入流、文件等等来直接构建Scanner对象,幽灵Scanner了,就可以逐段来扫描整个文本,并对扫描后的结果做想做的处理。
import java.util.Scanner;
public class ScannerTest
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);//接收输入按回车把内弄输入到Scanner的对象s中
System.out.println("请输入字符串");
while(true)
{
String line = s.nextLine();
if(line.equals("exit"))//如果line中的内容等于exit就break
break;
System.out.println(">>>" + line);
}
}
}
当然Scanner的构造函数也直接是字符串,而不是终端输入:
Scanner s = new Scanner("asd ad aas123 123 3423");
Scanner 中有些API(方法)比较实用:
delimiter():返回此Scanner当前正在用于匹配分隔符的Pattern
例如:Scanner s = new Scanner("sadaasdwasdasd");
s,useDelimter("a");
结果就为:
s
d
ssdw
sd
sd
s.useDelimter("d");
结果为:
sa
aas
was
as
如果想用多种的分隔符可以用useDelimiter(“[!?]”); 表示用!和?两种分隔符
还有正则表达式例如:\\s*a\\s*表示a前后有0个或任意个空格、制表符、换页共同作为一个分隔符
hasNext() :判断扫描中当前扫描位置后是否还存在下一段
hasNextLine() :如果在此扫描器的输入中存在下一段,则返回ture
next():查找并返回来自此扫描器的下一个完整标记
nextLine()此扫描器执行当前行,拌饭会跳过的输入信息
next()和nextLine()的区别是next()以空格和换行为分隔符,而nextLine()只以换行为分隔符
还有Scanner来扫描文件 日后再写;