標籤:imp 訪問 青春無悔 青春 sub 常量池 case blog color
Java String 類字串廣泛應用 在Java 編程中,在 Java 中字串屬於對象,Java 提供了 String 類來建立和操作字串。建立字串
// ==比較的是字串在棧中存放的首地址,而equals()比較的是兩個字串的內容是否相同
//普通的聲明字串的方法,只會在字串常量池裡開闢空間,並且開闢空間之前,會檢查字串常量池裡是否已存在 //相同的資料,如果有,直接指向已存在的資料,如果沒有會在字串常量池裡開闢一個新的空間 String s = "ccy"; String s2 ="ccy"; System.out.println(s == s2); System.out.println(s.equals(s2)); //執行個體化聲明字串的方法,會先在堆中存放資料,將資料的首地址儲存在棧內,然後檢查字串常量池是否存在 //相同的資料,如果沒有則會在字串常量池中開闢一個新的空間來存放字串資料,如果有則聲明完畢。 String s3 = new String("jredu"); String s4 = new String("jredu"); System.out.println(s3 == s4); System.out.println(s3.equals(s4)); String s5 = "jereh"; String s6 = new String("jereh"); System.out.println(s5 == s6); System.out.println(s5.equals(s6));
運行圖:
關於字串在記憶體空間中存放的樣本圖:
String 方法:1、字串長度用於擷取有關對象的資訊的方法稱為訪問器方法。String 類的一個訪問器方法是 length() 方法,它返回字串對象包含的字元數。
String string = new String("字串長度");int length = string.length();System.out.println(length);運行圖:
2、連接字串String 類提供了串連兩個字串的方法:1、string1.concat(string2);返回 string2 串連 string1 的新字串。也可以對字串常量使用 concat() 方法2、更常用的是使用‘+‘操作符來連接字串下面是一個例子:
public class Demo06 { public static void main(String[] args) { String s = new String("張三,"); String hello = new String("你好!"); String sentence = s.concat(hello); System.out.println(sentence); }} 運行圖:
3、分割字串成數組 string.split(參數);參數指從哪個字元分割例子:
package day6;import java.util.Arrays;public class Demo09 { public static void main(String[] args) { String sing = "長亭外 古道邊 芳草碧連天 晚風拂柳笛聲殘 夕陽山外山 "; String[] printsing; printsing = sing.split(" "); System.out.println(Arrays.toString(printsing)); }}運行圖:
4、 toUpperCase()讓小寫字串變為大寫的字串toLowerCase()讓大寫的字串變為小寫字串equalsIgnoreCase()字串忽略大小寫進行比較例子:
public class test { public static void main(String[] args) { String s1 = "abc"; String s2 = "ABC"; String s3 = s1.toUpperCase(); String s4 = s2.toLowerCase(); System.out.println(s3); System.out.println(s4); System.out.println(s1.equals(s4)); System.out.println(s2.equals(s3)); System.out.println(s1.equalsIgnoreCase(s2)); }}運行圖:
5、其他常用的方法 a、indexOf()擷取字串中某個字元或字串首次出現的位置,若沒有出現則返回-1b、lastIndexOf()擷取字串中某個字元或字串最後一次出現的位置,若沒有出現則返回-1c、substring()從字串的那個索引開始截取,獲得一個新的字串;兩個參數的第一個參數是截取開 始的位置(包含),第二個參數是結束的位置(不包含)d、trim()去掉字串或者字元前後的空格例子:
public class Demo08 { public static void main(String[] args) { String s = "我愛北京天安門!天安門上太陽升!"; //indexOf()擷取字串中某個字元或字串首次出現的位置,若沒有出現則返回-1 System.out.println(s.indexOf("天")); //lastIndexOf()擷取字串中某個字元或字串最後一次出現的位置,若沒有出現則返回-1 System.out.println(s.lastIndexOf("天")); //substring()從字串的那個索引開始截取,獲得一個新的字串 String newS = s.substring(8); System.out.println(newS); //兩個參數的第一個參數是截取開始的位置(包含),第二個參數是結束的位置(不包含) String newS3 = s.substring(2, 4); System.out.println(newS3); //trim()去掉字串或者字元前後的空格 String s2 = " 傑 瑞 教 育 "; String newS4 = s2.trim(); System.out.println(s2); System.out.println(newS4); }}運行圖:
StringBuffer 類當對字串進行修改的時候,需要使用 StringBuffer和 String 類不同的是,StringBuffer類的對象能夠被多次的修改,並且不產生新的未使用對象。StringBuffer的建立例子:
StringBuffer sBuffer = new StringBuffer("青春無悔");System.out.println(sBuffer);
運行圖:
StringBuffer和String的區別:Java 中 StringBuffer 和 String 是有一定的區別的,首先,String 是被 final 修飾的,他的長度是不可變的,就算調用 String 的concat 方法,那也是把字串拼接起來並重新建立一個對象,把拼接後的 String 的值賦給新建立的對象,而 StringBuffer 的長度是可變的,調用StringBuffer 的 append 方法,來改變 StringBuffer 的長度,並且,相比較於 StringBuffer,String 一旦發生長度變化,是非常耗費記憶體的!StringBuffer和String之間的轉換:例子:
public static void main(String[] args) { String s = "conversion" //String ---> StringBuffer StringBuffer sb = new StringBuffer(s); //StringBuffer ---> String String s2 = sb.toString(); System.out.println(sb); System.out.println(s2); scanner.close(); }
運行圖:
StringBuffer的常用方法:a、append(string s)將指定的字串追加到此字元序列。
public static void main(String[] args) { StringBuffer buffer = new StringBuffer("abcde"); buffer.append("f"); System.out.println(buffer);}
運行圖:
b、 reverse() 將此字元序列用其反轉形式取代。
public static void main(String[] args) { StringBuffer sBuffer = new StringBuffer("abcde"); sBuffer.reverse(); System.out.println(sBuffer); }
運行圖:
c、 delete(int start, int end) 移除此序列的子字串中的字元。
public class Demo04 { public static void main(String[] args) { StringBuffer sBuffer = new StringBuffer("abcde"); sBuffer.delete(1, 3); System.out.println(sBuffer); }運行圖:d、 insert(int offset, int i) 將 int 參數的字串表示形式插入此序列中。
public static void main(String[] args) { StringBuffer sBuffer = new StringBuffer("abcde"); sBuffer.insert(2,"!"); System.out.println(sBuffer); }
運行圖:
e、replace(int start, int end, String str)使用給定 String 中的字元替換此序列的子字串中的字元。
public static void main(String[] args) { StringBuffer sBuffer = new StringBuffer("abcde"); sBuffer.replace(1, 4,"*"); System.out.println(sBuffer); }
運行圖:
Java (六、String類和StringBuffer)