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