1. 程式人生 > >String物件的宣告和操作

String物件的宣告和操作

    String類是用來構造一個字串物件的.字串物件操作在程式當中會頻繁的使用到,我們可以通過實現這個類,就可以構造我們需要的字串物件。
通過String類構造字串物件的方式主要有兩種:
(1)常用的建立方式
    String s = "常用的建立方式";(這種建立方式比較節省記憶體資源)
    如:String s1 = "abcd";
        String s2 = "abcd";(s1==s2,這是因為這兩個引用變數在記憶體中存的地址是一樣的)
(2)不常用的建立方式
    String str = new String();
    如:String str1 = new String("abcd");
        String str2 = new String("abcd");(s1!=s2,這是因為每次建立一個物件,都會在記憶體中開闢一塊記憶體空間,即使它們中存的值是一樣的,但是記憶體地址不一樣。)
    String物件是不可變的,即是一個常量。類中每一個看來會修改String值的方法,其實都是建立了新的String物件(包含修改後的字串內容)。String的只讀性帶來效率優化可能,
字串字面值儲存於字串池中,String物件優先指向該字串池,避免反覆生成重複的字串例項。系統對String的非修改處理效率很高,遠遠超過另外兩個字串類StringBuffer和
StringBuilder。
(3)String物件的常用方法
    length():返回此字串的長度;
    charAt(int index):返回指定索引處的char值;
    concat(String str):將指定字串連線到此字串的結尾;
    contains(CharSequence s):是否包含指定的字串序列;https://www.cnblogs.com/skywang12345/p/string01.html
    equals(Object anObject):將此字串與指定的物件比較;
    compareTo(String anotherString):按字典順序比較兩個字串;
    indexOf(int ch):返回指定字串在此字串中首次出現的下標;
    split(String regex):根據給定正則表示式的匹配來拆分此字串;
    subString(int beginIndex):擷取字串;
    toLower/UpperCase():將指定的字串進行大小寫轉換;
    replace(CharSequence target, CharSequence replacement):使用replacement中的值替換此字串中所有的target物件,並返回一個新的字串;


// 查詢指定字串在給定字串中出現的次數
public class Demo {
public static void main(String[] args) {
String src = "朋友啊朋友,這是你最好的朋友!";
String dst = "朋友";
int index = 0;
int count = 0;
index = src.indexOf(dst);
while(index != -1){
count++;
index += dst.length();
index = src.indexOf(dst, index);
}
System.out.println(count);
}
}