Java (六、String類和StringBuffer)

來源:互聯網
上載者:User

標籤: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)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.