String類在java.lang包中,java使用String類建立一個字串變數,字串變數屬於物件。String類物件建立後不能修改,StringBuffer & StringBuilder 類。這時我們會問,為什麼我們String變數賦值不就是改變了嗎?其實不是的,賦值後將會生成新的對像來存放新的內容,原先的物件依舊在記憶體中,但是s不在指向它,那麼這個物件就會成為垃圾記憶體,在某一個特定的時刻有Java虛擬機器器回收。包含在一對雙引號之間。
宣告: String 變數名;
String str;
String 變數名=「初始值」;
String str = "淡忘_Java部落格";
語法:字串變數名.length();
返回值為 int 型別。得到一個字串的字元個數(中、英、空格、跳脫字元皆為字元,計入長度)
程式碼如下(範例):
String a="淡忘_Java部落格";
int l = a.length();
System.out.println(l);
輸出的結果為9
語法 :字串名.charAt(值); 返回值為 char 型別。從字串中取出指定位置的字元
程式碼如下(範例):
String str="淡忘_Java";
char c = str.charAt(3);
System.out.println("指定字元為:" + c);
執行結果:指定字元為:J
語法 :字串名.toCharArray();返回值為 char 陣列型別。將字串變成一個字元陣列
程式碼如下(範例):
String str="淡忘了";
char c[] = str.toCharArray();
for (int i = 0; i < c.length; i++)
System.out.println("轉為陣列輸出:" + c[i]);
執行結果:
轉為陣列輸出:淡
轉為陣列輸出:忘
轉為陣列輸出:了
語法 :字串名.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
String str="hello world";
System.out.println("將字串轉大寫為:" + str.toUpperCase());
System.out.println("將字串轉換成小寫為:" + str.toUpperCase().toLowerCase());
運算結果:
將字串轉大寫為:HELLO WORLD
將字串轉換成小寫為:hello world
根據給定的正規表示式的匹配來拆分此字串。形成一個新的String陣列。
String str = "boo:and:foo";
String[] arr1 = str.split(":");
String[] arr2 = str.split("o");
執行結果:
arr1 //{ "boo", "and", "foo" }
arr2 //{ "b", "", ":and:f" }
語法 :字串變數名.wquals(字串變數名); 返回值為布林型別。所以這裡用 if 演示。比較兩個字串是否相等,返回布林值
String str = "hello";
String str1 = "world";
if (str.equals(str1)) {
System.out.println("這倆字串值相等");
} else {
System.out.println("這倆字串值不相等");
}
執行結果:
這倆字串值不相等
String str = " 淡忘_Java部落格 ";
System.out.println("去掉左右空格後:" + str.trim());
執行結果:
去掉左右空格後:淡忘_Java部落格
第二種:
String str = " 淡忘_Java部落格 ";
System.out.println("去掉左右空格後:" + str.replace(" ",""));
執行結果:
去掉左右空格後:淡忘_Java部落格
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
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
String str = "HELLO WORLd";
String str1 = "WO";
if (str.contains(str1)) {
System.out.println("str內容中存在WO");
} else {
System.out.println("抱歉沒找著");
}
執行結果:
str內容中存在WO
String str = "HELLO WORLd";
String str1 = "HE";
if (str.startsWith(str1)) {
System.out.println("str內容中存在HE字首開頭");
} else {
System.out.println("抱歉沒找著");
}
執行結果:
str內容中存在HE字首開頭
String str = "淡忘部落格";
String str1 = "部落格";
if (str.endsWith(str1)) {
System.out.println("str內容中存在\'部落格\'字尾結束");
} else {
System.out.println("抱歉沒找著");
}
執行結果:
str內容中存在'部落格'字尾結束
String str = ",,,,,,淡忘部落格,,,,, ";
System.out.println("改變後:" + str.replaceAll(",", "a"));
執行結果:改變後:aaaaaa淡忘部落格aaaaa
String str = ",,,,,,淡忘部落格6不,,,,, ";
System.out.println("改變後:" + str.replaceFirst("6不", "很6"));
執行結果:改變後:,,,,,,淡忘部落格很6,,,,,
大神勿噴,有什麼錯的希望給我留言,我會改正