Java IO--Scanner
Scanner簡介:

適應Scanner接收鍵盤的輸入數據:
import java.util.* ; public class ScannerDemo01{ public static void main(String args[]){ Scanner scan = new Scanner(System.in) ; // 從鍵盤接收數據 System.out.print("輸入數據:") ; String str = scan.next() ; // 接收數據 System.out.println("輸入的數據為:" + str) ; } };

修改分隔符:
import java.util.* ; public class ScannerDemo02{ public static void main(String args[]){ Scanner scan = new Scanner(System.in) ; // 從鍵盤接收數據 System.out.print("輸入數據:") ; scan.useDelimiter("\n") ; String str = scan.next() ; // 接收數據 System.out.println("輸入的數據為:" + str) ; } };

import java.util.* ; public class ScannerDemo03{ public static void main(String args[]){ Scanner scan = new Scanner(System.in) ; // 從鍵盤接收數據 int i = 0 ; float f = 0.0f ; System.out.print("輸入整數:") ; if(scan.hasNextInt()){ // 判斷輸入的是否是整數 i = scan.nextInt() ; // 接收整數 System.out.println("整數數據:" + i) ; }else{ System.out.println("輸入的不是整數!") ; } System.out.print("輸入小數:") ; if(scan.hasNextFloat()){ // 判斷輸入的是否是小數 f = scan.nextFloat() ; // 接收小數 System.out.println("小數數據:" + f) ; }else{ System.out.println("輸入的不是小數!") ; } } };Scanner這個類雖然可以接收各種類型,但是對於日期型的數據卻無法接收。
如果要想接收Date類型的數據,則隻能通過字符串轉型,但是在接收的時候依然可以使用Scanner類中提供的方法進行驗證:
·驗證:public String hasNext(Pattern)
·接收:public String next(String pattern)
import java.util.* ; import java.text.* ; public class ScannerDemo04{ public static void main(String args[]){ Scanner scan = new Scanner(System.in) ; // 從鍵盤接收數據 String str = null ; Date date = null ; System.out.print("輸入日期(yyyy-MM-dd):") ; if(scan.hasNext("^\\d{4}-\\d{2}-\\d{2}$")){ // 判斷 str = scan.next("^\\d{4}-\\d{2}-\\d{2}$") ; // 接收 try{ date = new SimpleDateFormat("yyyy-MM-dd").parse(str) ; }catch(Exception e){} }else{ System.out.println("輸入的日期格式錯誤!") ; } System.out.println(date) ; } };還可以直接從文件中讀取信息。假設:d:\test.txt文件中寫入內容:
使用Scanner直接讀取文件內容:
import java.util.* ; import java.text.* ; import java.io.* ; public class ScannerDemo05{ public static void main(String args[]){ File f = new File("D:" + File.separator + "test.txt") ; // 指定操作文件 Scanner scan = null ; try{ scan = new Scanner(f) ; // 從鍵盤接收數據 }catch(Exception e){} String str = null ; if(scan.hasNext()){ str = scan.next(); } System.out.println("文件內容為:" + str) ; } };現在的文件內容確實讀取進來了。但是此程序依然不完美。以上隻能讀取第一行數據,因為存在換行,所以就認為讀完了。
所以在使用Scanner的時候,要考慮換行的功能:
import java.util.* ; import java.text.* ; import java.io.* ; public class ScannerDemo05{ public static void main(String args[]){ File f = new File("D:" + File.separator + "test.txt") ; // 指定操作文件 Scanner scan = null ; try{ scan = new Scanner(f) ; // 從鍵盤接收數據 }catch(Exception e){} StringBuffer str = new StringBuffer() ; while(scan.hasNext()){ str.append(scan.next()).append('\n') ; // 取數據 } System.out.println("文件內容為:" + str) ; } };
最後更新:2017-04-03 14:54:15