2013年9月23日 星期一

【職訓局-手機程式開發班】2013 9/23 java

1.StringBuffer 與 StringBuilder

字串需一直變動使用String每變動一次都會產生新的物件,
會浪費記憶體,這時就要用StringBuffer與StringBuiler,
StringBuiler不能使用在多執行序。

StringBuffer b = new StringBuffer("12345"); // 創立文字
b.append("6789"); // 加入文字
System.out.println(b);
b.delete(2, 4); // 刪除文字 (開始,結束)
System.out.println(b);
b.insert(3, "34"); // 增加文字 (開始,插入值)
System.out.println(b);
b.replace(1, 5, "二三四"); // 取代(開始,結束,值) 只會取代開始與結束中間的值
System.out.println(b);
b.reverse(); // 顛倒
System.out.println(b);
b.reverse(); // 顛倒
  
String a = new String(b);
String c = a.replaceAll("二三四", "234"); // 正規法取代
System.out.println(c);

執行結果:
1256789
125346789
1二三四6789
9876四三二1
12346789

2.規則表示法

例1:
String s = "123456789";
System.out.println(s.matches("[0-9]")); // false (只比對一位數 s="1"才會是true)
System.out.println(s.matches("[0-9]+")); // ture (+至少出現1次以上的數字)
System.out.println(s.matches("[0-9]*")); // ture (*0或多次)
System.out.println(s.matches("[0-9]{9}")); // ture (剛好出現9個)
System.out.println(s.matches("[0-9]{3,}")); // ture (3個以上)
System.out.println(s.matches("[0-9]{3,8}")); // false (3-8個)

String b = "123";
System.out.println(b.matches("1[^123]3")); // false (^是不包含)
System.out.println(b.matches("1[123]3")); // true
System.out.println(b.matches("1([123])+3")); // true ()為群組
// 手機號碼檢查 String b = "0935751111"; System.out.println(b.matches("0[0-9]{9}")); // true // Eamil String b = "leeeee@yahoo.com.tw"; String b = "leeeee@yahoo.com.tw"; System.out.println(b.matches("[A-Za-z_]{1}[A-Za-z1-9_\\.]*@[A-Za-z1-9_]{1}[A-Za-z1-9_\\.]*")); // true // 簡易身分證 String b = "C222990912"; System.out.println(b.matches("[A-Z]{1}[12]{1}[0-9]{8}")); // true

3.split (explode)

String a = "1,2,3,4,5";
String[] c = a.split(",");
for(String i:c){
 System.out.print(i); // 12345
}