標籤:mod 對象 build sub 時間格式 builder line rac regex
Java字串類型為String類,以下介紹怎樣操作字串。
1、字串串連
字串串連使用“+”符號。例如以下範例:
String s = new String("Hello"); String s2 = new String("World"); System.out.println(s + " " + s2); // Hello World
2、擷取字串長度
擷取字串長度使用str.length()。例如以下範例:
String s3 = new String("Hello Java"); System.out.println(s3.length()); // 10
3、擷取指定字串的索引
擷取指定字串的索引使用str.indexOf(substr)、str.lastIndexOf(substr),例如以下範例:
String s4 = new String("how are you"); System.out.println(s4.indexOf("o")); // 1 從頭開始尋找 System.out.println(s4.lastIndexOf("o")); // 9 從尾開始尋找
4、擷取指定索引的字元
擷取指定索引的字元使用str.charAt(index),例如以下範例:
String s5 = new String("Hello Java"); System.out.println(s5.charAt(4)); // o
5、去除字串中的空格
去除字串中的空格有多種方法。使用str.trim()或str.replaceAll(regex, replacement)。也能夠借用StringTokenizer類對字串使用空格進行分隔。使用前須要import包java.util.StringTokenizer,例如以下範例:
String s6 = new String(" Hello Java "); String s7 = s6.trim(); // 去除字串開始、結尾處的空格 String s8 = s6.replaceAll(" ", ""); // 替換字串中的所有空格 StringTokenizer st = new StringTokenizer(s6, " "); // 使用空格分隔字串 StringBuffer sb = new StringBuffer(); while (st.hasMoreTokens()) { sb.append(st.nextToken()); } System.out.println("\"" + s6 + "\"" + "length = " + s6.length()); // " Hello Java "length = 14 System.out.println("\"" + s7 + "\"" + "length = " + s7.length()); // "Hello Java"length = 10 System.out.println("\"" + s8 + "\"" + "length = " + s8.length()); // "HelloJava"length = 9 System.out.println("\"" + sb.toString() + "\"" + "length = " + sb.toString().length()); // "HelloJava"length = 9
6、替換字串
替換字串能夠替換所有子串,也能夠替換第一個子串,例如以下範例:
String sr = new String("abc abd bcd"); String sr2 = sr.replace("ab", "xx"); // 替換所有子串 String sr3 = sr.replaceFirst("ab", "xx"); // 替換第一個字串 System.out.println(sr2); // "xxc xxd bcd" System.out.println(sr3); // "xxc adb bcd"
7、字串判等
字串判等有多種情況,比如字串內容判等、是否忽略大寫和小寫、記憶體位址判等、字串開始或結尾處推斷等,例如以下範例:
String se = new String("Summer is so Hot"); String se1 = new String("Summer is so Hot"); String se2 = new String("summer is so hot"); String se3 = se; System.out.println(se == se1); // false 比較記憶體而非字串內容 System.out.println(se == se3); // true System.out.println(se.equals(se1)); // true 比較字串內容 System.out.println(se.equals(se2)); // false System.out.println(se.equalsIgnoreCase(se2)); // true 忽略大寫和小寫 System.out.println(se2.startsWith("summer")); // true 字串開始 System.out.println(se2.endsWith("cold")); // false 字串結尾
8、字串大寫和小寫轉換
字串大寫和小寫轉換例如以下範例:
String sc = new String("hello WORLD"); String scl = sc.toLowerCase(); // hello world 轉換為小寫 String scu = sc.toUpperCase(); // HELLO WORLD 轉換為大寫 System.out.println(scl + " " + scu);
9、字串分隔
字串分隔例如以下範例:
String ss = new String("abc,def,g,h"); String[] ss2 = ss.split(","); // 以逗號分隔 for (String x: ss2) { System.out.print(x + "\t"); // abc def g h }
10、格式化字串
字串格式化有多種形式,如日期格式化、時間格式化、進位轉換等,Date類的使用須要import包java.util.Date,例如以下範例:
Date d = new Date(); System.out.println(d); // Wed Jul 22 16:00:36 CST 2015 預設格式 System.out.println(String.format("%tm", d)); // 07 兩位元月份 System.out.println(String.format("%tH", d)); // 16 兩位24小時制 System.out.println(String.format("%x", 256)); // 100 十六進位
11、String、StringBuffer、StringBuilder類比較
String:字串常量,不可變對象,變數內容改變時實際上是產生了一個新的String對象,當多次、頻繁改變變數內容時,會對系統效能產生影響。特別是由此導致GC開始工作時,程式速度就會變的非常慢。
StringBuffer:字串變數。安全執行緒,變數內容改變時事實上是對同一個對象進行操作,效率比String類型高。
StringBuilder:字串變數。與StringBuffer相容,卻是非安全執行緒的,假設是單線程。優先使用StringBuilder,它比StringBuffer要快。
Java字串簡單使用方法