今天介紹的Scanner這個類是java 5新增加的類,不僅使用方便,功能更是強大。先來看一個簡單的例子:import java.util.*;
public class ScannerTest {
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        double a=scanner.nextDouble();
        System.out.println(a);
    }
}

運行

輸入 一個任意數然後輸出這個數

 

     注意粗體字的地方,這一行就實現了從控制台輸入數位的功能,如果要輸入字串

可以用

String a=scanner.next();//注意不是nextString()

 

Scanner還可以直接掃描檔。比如(有點長,耐心一點):

import java.util.*;
import java.io.*;
public class ScannerTest {
    public static void main(String[] args) throws IOException{//
這裡涉及到檔io操作
        double sum=0.0;
        int count=0;
        FileWriter fout=new FileWriter("text.txt");
        fout.write("2 2.2 3 3.3 4 4.5 done");//
往檔裡寫入這一字串
        fout.close();
        FileReader fin=new FileReader("text.txt");
        Scanner scanner=new Scanner(fin);//
注意這裡的參數是FileReader類型的fin
        while(scanner.hasNext()){//
如果有內容

            if(scanner.hasNextDouble()){//
如果是數字
                sum=sum+scanner.nextDouble();
                count++;
            }else{
                String str=scanner.next();
                if(str.equals("done")){
                    break;  
                }else{
                    System.out.println("
檔案格式錯誤!");
                    return;
                }
            }
        }
        fin.close();
        System.out.println("
檔中資料的平均數是
:"+sum/count);
    }
}

結果輸出檔中資料的平均數是:3.1666666666666665
這段程式的功能是將"2 2.2 3 3.3 4 4.5 done"寫入文件scanner讀取文件中的數直到done結束。

並求出數位的平均值,比較有意思的是scanner會自動一空格作為分割符區分不同數位。
當然也可以通過scanner.useDelimiter(Pattern pattern)來設置不同的分割符,比如 scanner.useDelimiter(",*");

 

arrow
arrow
    全站熱搜

    alex0126 發表在 痞客邦 留言(0) 人氣()