正規表示式:
●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
留言列表