一、概述
1、包路徑
java.lang.String
2、簡介
String 類代表字符串;
Java 程序中的所有字符串字面值(如 "abc" )都作爲此類的實例實現;
3、字符串的特點
字符串是常量,內容不可改變——所看到的“改變 ”只是改變了指向;
字符串可以共享——若兩個字符串內容完全相同,則是兩個變量指向了同一個內容,通過new關鍵字創建的字符串除外;
字符串相當於char[]字符數組,但底層原理是byte[]字節數組;
二、使用方法
1、創建字符串的4種方法
構造方法創建:
public String();//通過雙引號引起內容創建
public String(char[] array);;//通過字符數組創建
public String(byte[] array);;//通過字節數組創建
直接創建:
String str = "字符串內容";(重要備註:僅且僅用此方式創建,字符串存放在字符串常量池中,字符串常量池是在堆中的)
使用:
String str1 = "abc";
String str2 = new String("abc");
char[] chars = {'a','b','c'};
String str3 = new String(chars);
byte[] bytes = {97,98,99};
String str4 = new String(bytes);
System.out.println(str1);//abc
System.out.println(str2);//abc
System.out.println(str3);//abc
System.out.println(str4);//abc
比較:
String str1 = "abc";
String str2 = new String("abc");
char[] chars = {'a','b','c'};
String str3 = new String(chars);
byte[] bytes = {97,98,99};
String str4 = new String(bytes);
System.out.println(str1);//abc
System.out.println(str2);//abc
System.out.println(str3);//abc
System.out.println(str4);//abc
System.out.println(str1==str2);//false
System.out.println(str1==str3);//false
System.out.println(str1==str4);//false
System.out.println(str2==str3);//false
System.out.println(str2==str4);//false
System.out.println(str3==str4);//false
//但是注意了
String str5 = "abc";
System.out.println(str1==str5);//true
//因爲直接創建的內容相同的字符串在字符串常量池中共享,所以地址是相同的
內存圖:
2、獲取相關的常用方法
獲取字符串長度:
System.out.println("abc".length());//3
拼接字符串並返回拼接後的字符串:
System.out.println("hello".concat(" world"));//hello world
獲取指定位置的單個字符:
System.out.println("hello".charAt(2));//l
查找子字符串首次出現的索引位置,沒有則返回-1:
System.out.println("hello".indexOf("he"));//0
3、截取相關的常用方法
截取從參數位置一直到字符串就結尾的字符串:
System.out.println("abcdefg".substring(2));//cdefg
截取從一個位置到另一個位置的字符串:
System.out.println("abcdefg".substring(2,5));//cde
4、轉換相關的常用方法
轉換爲字符串數組:
String string = "abc";
char[] chars = string.toCharArray();
for (char c : chars) {
System.out.println(c);//a b c
}
轉換爲字節數組:
byte[] bytes = string.getBytes();
for (byte b : bytes) {
System.out.println(b);//97 98 99
}
用新的子字符串替換舊的子字符串:
System.out.println(string.replace("a","z"));//zbc
5、字符串分割方法
方法:
String[] split(String regex)//這個字符串實際上是正則表達式,不是簡單的字符串
作用:
將字符串按照一定的規則分割成若干字符串,返回字符串數組
使用:
String string = "a,b,c";
String[] strings = string.split(",");
for (String s : strings) {
System.out.println(s);//a b c
}