- java.io.StreamTokenizer类可获取输入流并将其分析为Token(标记),其nextToken()方法可以用来读取下一个标记。
- 用StreamTokenizer类输入比Scanner类处理输入效率高。
- 默认情况下,StreamTokenizer认为下列内容是Token:字母、数字、除c和c++注释符号以外的其他符号。如符号“/”不是Token,注释后的内容也不是,而“\”是Token。单引号和双引号以及其总的内容,只能算一个Token。 如果希望引号和引号中的内容都算作Token,应该通过StreamTokenizer的ordinaryCha方法将单引号和双引号当做普通字符处理。
为了提高效率,使用BufferedReader,创建StreamTokenizer对象
StreamTokenizer in=new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
调用StreamTokenizer的nextToken()方法,从流中获取标记。
调用nextToken()方法以后,如果标记是字符串,可用 String s=in.sval,如果是整数用 int n=(int) in.nval得到。
in.nextToken();
int n=(int)in.nval;
in.nextToken();
int m=(int)in.nval;
in.nextToken();
String s=in.sval;