close

正規表示式:
●Regular Expression
●目的:利用預先定義的分隔符號
--分隔字串
--檢查資料是否符合特定的格式
--從大量資料中抽取特定格式的資訊

●請先import java.util.regex.*;

●.    表任一字元
●\\d  表0-9
●\\s  表任空白字元
●\\S  表所有非空白字元
●其餘細項可參照:
  --http://java.sun.com/j2se/1.7.0/docs/api/java/util/regex/Pattern.html


        String source = "This is a book";
        String[] dataArray = source.split(" ");      //以空白隔開
        for(String data : dataArray)
            System.out.println(data);

Out:

This
is
book


        String source = "1-2/3*4+5";
        String[] dataArray = source.split("[\\+\\-\\*\\/]");      //只要有+-*/符號就隔開
        for(String data : dataArray)
            System.out.println(data);

Out:

1
2
3
4
5


        String source2 = "1-2/3*4+5";
        StringTokenizer st = new StringTokenizer(source2,"\\+\\-\\*\\/");
     //StringTokenizer st = new StringTokenizer(source2,"\\+\\-\\*\\/",tue);       //可保留分割符號
        while(st.hasMoreTokens()){
            System.out.println(st.nextToken());
        }

Out:

1
2
3
4
5


StringTokenizer 與 split 差異

        String source = "1-2/3**4+5";
        String[] dataArray = source.split("[\\+\\-\\*\\/]");
        for(String data : dataArray)
            System.out.println(data);
        
        System.out.println("-----");
        
        String source2 = "1-2/3**4+5";
        StringTokenizer st = new StringTokenizer(source2,"\\+\\-\\*\\/");
        while(st.hasMoreTokens()){
            System.out.println(st.nextToken());
        }

 

Out:

1
2
3

4
5
-----
1
2
3
4
5


//使用Scanner:

        Scanner s = null;
        StringBuilder sb = new StringBuilder(64);
        String line01 = "1.1, 2.2, 3.3";
        float ff = 0.0f;
        s = new Scanner(line01).useDelimiter(", ");
        while (s.hasNextFloat()){
            float f = s.nextFloat();
            ff += f;
            sb.append(f).append(" ");
        }
        System.out.println(sb.toString());
        System.out.println(ff);

Out:
1.1 2.2 3.3 
6.6000004

arrow
arrow

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