Java String類的常用方法使用方法

2020-10-29 20:00:29

String常用類使用方法

String類在java.lang包中,java使用String類建立一個字串變數,字串變數屬於物件。String類物件建立後不能修改,StringBuffer & StringBuilder 類。這時我們會問,為什麼我們String變數賦值不就是改變了嗎?其實不是的,賦值後將會生成新的對像來存放新的內容,原先的物件依舊在記憶體中,但是s不在指向它,那麼這個物件就會成為垃圾記憶體,在某一個特定的時刻有Java虛擬機器器回收。包含在一對雙引號之間。



String字串變數的建立:

宣告: String 變數名;

String str;

宣告並初始化:

String 變數名=「初始值」;

String str = "淡忘_Java部落格";

1、int length();

語法:字串變數名.length();
返回值為 int 型別。得到一個字串的字元個數(中、英、空格、跳脫字元皆為字元,計入長度)

程式碼如下(範例):

String a="淡忘_Java部落格";
        int l = a.length();
        System.out.println(l);
輸出的結果為9

2、char charAt(值);

語法 :字串名.charAt(值);  返回值為 char 型別。從字串中取出指定位置的字元

程式碼如下(範例):

String str="淡忘_Java";
        char c = str.charAt(3);
        System.out.println("指定字元為:" + c);
執行結果:指定字元為:J

3、char toCharArray();

語法 :字串名.toCharArray();返回值為 char 陣列型別。將字串變成一個字元陣列

程式碼如下(範例):

String str="淡忘了"char c[] = str.toCharArray(); 
for (int i = 0; i < c.length; i++)
System.out.println("轉為陣列輸出:" + c[i]);

 執行結果:
	轉為陣列輸出:淡
	轉為陣列輸出:忘
	轉為陣列輸出:

4、 int indexOf(「字元」)

語法 :字串名.indexOf(「字元」);字串名.indexOf(「字元」,值);查詢一個指定的字串是否存在,返回的是字串的位置,如果不存在,則返回-1 。
  in lastIndexOf(「字元」) 得到指定內容最後一次出現的下標
程式碼如下(範例):

String str = "I am a good student";
        int a = str.indexOf('a');//a = 2
        int b = str.indexOf("good");//b = 7
        int c = str.indexOf("w", 2);//c = -1
        int d = str.lastIndexOf("a");//d = 5
        int e = str.lastIndexOf("a",3);//e = 2
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);

 執行結果:
	轉為陣列輸出:2
	轉為陣列輸出:7
	轉為陣列輸出:-1
	轉為陣列輸出:5
	轉為陣列輸出:2

5、toUpperCase(); toLowerCase();字串大小寫的轉換

String str="hello world";
System.out.println("將字串轉大寫為:" + str.toUpperCase());
System.out.println("將字串轉換成小寫為:" + str.toUpperCase().toLowerCase());

運算結果:

將字串轉大寫為:HELLO WORLD
將字串轉換成小寫為:hello world

6、String[] split(「字元」)

根據給定的正規表示式的匹配來拆分此字串。形成一個新的String陣列。

String str = "boo:and:foo";
String[] arr1 = str.split(":");
String[] arr2 = str.split("o");
執行結果:
  arr1  //{ "boo", "and", "foo" }
  arr2  //{ "b", "", ":and:f" }

7、boolean equals(Object anObject)

語法 :字串變數名.wquals(字串變數名);  返回值為布林型別。所以這裡用 if 演示。比較兩個字串是否相等,返回布林值

String str = "hello";
        String str1 = "world";
        if (str.equals(str1)) {
            System.out.println("這倆字串值相等");
        } else {
            System.out.println("這倆字串值不相等");
        }
  執行結果:
    這倆字串值不相等

8、trim();去掉字串左右空格  replace(char oldChar,char newChar);新字元替換舊字元,也可以達到去空格的效果一種。

String str = "      淡忘_Java部落格         ";  
System.out.println("去掉左右空格後:" + str.trim());
 
執行結果:
  去掉左右空格後:淡忘_Java部落格

第二種:
String str = "       淡忘_Java部落格         ";  
System.out.println("去掉左右空格後:" + str.replace(" ","")); 

執行結果:
  去掉左右空格後:淡忘_Java部落格

9、String substring(int beginIndex,int endIndex)  擷取字串

String str = "123淡忘_Java部落格456";
        System.out.println("擷取後的字元為:" + str.substring(0, 3));// 擷取0-3個位置的內容   不含3
        System.out.println("擷取後字元為:" + str.substring(2));// 從第3個位置開始擷取    含2
        
 執行結果:
   擷取後的字元為:123
   擷取後字元為:3淡忘_Java部落格456

10、boolean equalsIgnoreCase(String) 忽略大小寫的比較兩個字串的值是否一模一樣,返回一個布林值

String str = "123淡忘_Java部落格456";
        System.out.println("擷取後的字元為:" + str.substring(0, 3));// 擷取0-3個位置的內容   不含3
        System.out.println("擷取後字元為:" + str.substring(2));// 從第3個位置開始擷取    含2
        
 執行結果:
   擷取後的字元為:123
   擷取後字元為:3淡忘_Java部落格456

11、boolean contains(String) 判斷一個字串裡面是否包含指定的內容,返回一個布林值

       String str = "HELLO WORLd";
        String str1 = "WO";
        if (str.contains(str1)) {
            System.out.println("str內容中存在WO");
        } else {
            System.out.println("抱歉沒找著");
        }
執行結果:
  str內容中存在WO

12、boolean startsWith(String)  測試此字串是否以指定的字首開始。返回一個布林值

       String str = "HELLO WORLd";
        String str1 = "HE";
        if (str.startsWith(str1)) {
            System.out.println("str內容中存在HE字首開頭");
        } else {
            System.out.println("抱歉沒找著");
        }
執行結果:
  str內容中存在HE字首開頭

13.boolean endsWith(String)  測試此字串是否以指定的字尾結束。返回一個布林值

String str = "淡忘部落格";
        String str1 = "部落格";
        if (str.endsWith(str1)) {
            System.out.println("str內容中存在\'部落格\'字尾結束");
        } else {
            System.out.println("抱歉沒找著");
        }
 執行結果:
  str內容中存在'部落格'字尾結束

14、上面提到了replace方法,接下繼續補充一下 String replaceAll(String,String) 將某個內容全部替換成指定內容,   String repalceFirst(String,String) 將第一次出現的某個內容替換成指定的內容

String str = ",,,,,,淡忘部落格,,,,, ";
        System.out.println("改變後:" + str.replaceAll(",", "a"));
  執行結果:改變後:aaaaaa淡忘部落格aaaaa 
  String str = ",,,,,,淡忘部落格6不,,,,, ";
        System.out.println("改變後:" + str.replaceFirst("6不", "很6"));
   執行結果:改變後:,,,,,,淡忘部落格很6,,,,, 

總結

大神勿噴,有什麼錯的希望給我留言,我會改正