Java中Scanner的理解大总结
Scanner類常用的方法:
Scnaner(File file);Scnaner(String filename);創建一個從特定文件掃描的掃描器
hasNext();還有可讀取的書庫返回true
next();返回下一個標志作為字符串
nextLine();使用行分隔符從這個掃描器返回一個行結束
nextByte();nextshort();nextInt();nextLong();nextFloat();nextDouble();分別返回一個對應類型的值
useDelimiter(string pattern);設置這個掃描器的分割模式并返回這個掃描器
一,從控制臺輸入
當通過new Scanner(System.in)創建一個Scanner,控制臺會一直等待輸入,直到敲回車鍵結束,把所輸入的內容傳給Scanner,作為掃描對象。如果要獲取輸入的內容,則只需要調用Scanner的nextLine()方法即可
Scanner默認使用空格作為分割符來分隔文本
public static void main(String[] args) throws FileNotFoundException { Scanner s = new Scanner("123 456 789"); while (s.hasNext()) { System.out.println(s.next()); } } //輸入結果就是 123 456 789二,從文件掃描讀入
Scanner的構造器支持多種方式,構建Scanner的對象很方便,可以從字符串(Readable)、輸入流、文件等等來直接構建Scanner對象,有了Scanner了,就可以逐段(根據正則分隔式)來掃描整個文本,并對掃描后的結果做想要的處理。
Scanner(File file) //構造一個新的Scanner,它生成的值是從指定文件掃描的
Scanner(InputStream source) //構造一個新的 Scanner,它生成的值是從指定的文件的輸入流掃描的
Scanner(String filename) //構造一個新的Scanner,它生成的值是從指定文件名掃描的。
文件對象,文件名,文件輸入流
三,Scanner是怎么工作的
next();nextByte();nextshort();nextInt();nextLong();nextFloat();nextDouble();都是令牌讀取方法,他們分隔符默認情況下是空格。
next()和nextLine() 的區別:
next()方法讀取一個由分割付分割的字符,但是nextLine()是讀取一個以行分割符結束的行
例如test.txt文本中有
23 345
的結果是a的值是34 ,line的值是”,”3,’4’,’5’
再如如果從鍵盤輸入23,然后按回車鍵,接著輸入345,然后在按鈕回車鍵,執行
之后的結果是a的值是23,但是line的卻是空的字符串,因為nextInt()讀取到23,然后在分割付處停止,這里的分隔符是行分隔符,就是回車鍵,所以nextLine還沒有到數據就結束了,為空字符串。
總結
以上是生活随笔為你收集整理的Java中Scanner的理解大总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 表单开发(二):获取单选按钮,多行文本框
- 下一篇: Java标准流输入输出流In(Out)p