首页 > 代码库 > java令牌读取方法和Scanner的工作方式

java令牌读取方法和Scanner的工作方式

Scanner的工作方式

nextInt,nextDouble,next等都是令牌读取方法。nextLine不是令牌读取方法。

令牌读取方法的工作方式:

首先跳过任意分隔符,然后读取一个以分隔符结束的令牌。然后对应于nextByte,nextInt,nextLong方法,这个令牌会分别自动转换为一个byte,int,long。

Next,nextLine都读取一个字符串

Next是读取分隔符分割的字符串  nextline读取的是以行分隔符分割的行。

行分割符是系统定义的。在windos平台是\r\n,在unix是\n,为了得到特定平台下的行分割符

使用:String lineSeparator = System.getProperty(“line.separator”);

 

令牌读取方式不能读取令牌后面的分隔符。如果在令牌读取方法后面调用nextline那么,从分隔符开始,到行分隔符进行读取。行分隔符也会读取但是不作为字符串的部分。

 

注意在next后面跟随nextline 会出现一些情况

例如

Scanner input = new Scanner(system.in);

Int intvalue= http://www.mamicode.com/input.nextInt()

String line = input.nextLine();


输入  34 123 回车

Intvalue是34    line是空格加123;

如果输入时 34   回车  123 回车(其实输入34后按回车程序就已经结束了)

Intvalue还是34,line是空字符串。


java令牌读取方法和Scanner的工作方式