Scanner的工作方式
nextInt,nextDouble,next等都是令牌讀取方法。nextLine不是令牌讀取方法。
令牌讀取方法的工作方式:
首先跳過任意分隔符,然后讀取一個以分隔符結束的令牌。然后對應于nextByte,nextInt,nextLong方法,這個令牌會分別自動轉換為一個byte,int,long。
Next,nextLine都讀取一個字符串
Next是讀取分隔符分割的字符串 nextline讀取的是以行分隔符分割的行。
行分割符是系統定義的。在windos平臺是 ,在unix是 ,為了得到特定平臺下的行分割符
使用:String lineSeparator = System.getProperty(“line.separator”);
令牌讀取方式不能讀取令牌后面的分隔符。如果在令牌讀取方法后面調用nextline那么,從分隔符開始,到行分隔符進行讀取。行分隔符也會讀取但是不作為字符串的部分。
注意在next后面跟隨nextline 會出現一些情況
例如
Scanner input = new Scanner(system.in);
Int intvalue= input.nextInt()
String line = input.nextLine();
輸入 34 123 回車
Intvalue是34 line是空格加123;
如果輸入時 34 回車 123 回車(其實輸入34后按回車程序就已經結束了)
Intvalue還是34,line是空字符串。