04_String類

美的梦里国發表於2024-07-26

一、String

字串是常量,建立之後不可被改變

字串字面值儲存在字串池中,可以共享

String s = "Hello";產生一個物件,字串池中儲存

String s = new String("Hello");產生兩個物件,堆、池各儲存一個。

二、常用方法

public int length();返回字串長度。
public char charAt(int index);根據字串下標獲取字元。
public boolean contains(String str);判斷當前字串中是否包含str。
public char[] toCharArray();將字串轉換成字元型別的陣列。
public int indexOf(String str);查詢str首次出現的下標,存在,則返回該下標;不存在,則返回-1。
public int lastindexOf(String str);查詢字串在當前字串中最後一次出現的下標索引。
public String trim();去掉字串前後的空格。
public String toUpperCase();將小寫轉成大寫。toLowerCase();將大寫轉成小寫。
public boolean endsWith(String str);判斷字串是否以str結尾。
public String replace(char oldChar, char newChar);將舊字串替換成新字串。
public Sting[] split(String str);根據str做拆分。

三、StringBuffer和StringBuilder

public class demo03 {

    public static void main(String[] args) {
//        StringBuffer和StringBuilder一樣
        StringBuffer sb = new StringBuffer();
        //append
        sb.append("java is nb");
        System.out.println(sb);

        //insert
        sb.insert(0, "hahahaha ");
        System.out.println(sb);	//hahahaha java is nb

        //replace
        sb.replace(0,3,"fffff");
        System.out.println(sb);	//fffffahaha java is nb

        //delete
        sb.delete(0,5);
        System.out.println(sb);	//ahaha java is nb
        sb.delete(0,sb.length());
        System.out.println(sb.length());	//0
    }

}

測試StringBuffer的效率比String高

public class demo04 {

    public static void main(String[] args) {
        long l = System.currentTimeMillis();
        
//        String s = "";
//        for (int i = 0; i < 99999; i++) {
//            s+=i;
//        }
//        System.out.println(s);
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < 99999; i++) {
            sb.append(i);
        }
        System.out.println(sb.toString());
        long l1 = System.currentTimeMillis();
        System.out.println(l1-l);
    }

}

相關文章