學習Java. 基礎 21: String類的詳解

1. String類

1.1. 字符串概念

字符串是平常開發中最經常使用的。表明一個字符序列,其底層爲字符數組java

1.2. 常見方法

構造方法名稱 描述
String(String original) 把字符串數據封裝成字符串對象
String(char[] value) 把字符數組的數據封裝成字符串對象
String(char[] value,int offset, int count) 把字符數組中的一部分數據封裝成字符串對象。offset:從哪一個索引開始。count:拼接幾個字符
  • 注意: 字符串是一種比較特殊的引用數據類型,直接輸出字符串對象輸出的是該對象中的數據。
/**
 * @author 漫路
 */
publicclass Demo01String {
	publicstaticvoid main(String[] args) {
		//方式 1
		//String(String original):把字符串數據封裝成字符串對象
		Strings1 = new String("hello");
		System.out.println("s1:"+s1);
		System.out.println("---------");
		//方式 2
		//String(char[] value):把字符數組的數據封裝成字符串對象
		char[] chs = {'h','e','l','l','o'};
		String s2 = new String(chs);
		System.out.println("s2:"+s2);
		System.out.println("---------");
		//方式 3
		//String(char[] value, int index, int count):把字符數組中的一部分數據封裝成字符串對象
		//String s3 = new String(chs,0,chs.length);
		char[] arr = {'h','e','l','l','o'};
		String s3 = new String(arr,1,3);
		System.out.println("s3:"+s3);
		System.out.println("---------");
		//方式 4
		String s4 = "hello";
		System.out.println("s4:"+s4);
	}
}

1.2.1 普通方法

  • 如下方法, 都不會改變原來字符串
方法名&返回值 描述
int length () 獲取長度
String trim () 去除字符串兩端空白
boolean startsWith (String prefix) 是否以指定內容開頭
boolean endsWith (String suffix) 是否以指定內容結尾
boolean contains (CharSequence s) 判斷當前字符串是否包含指定字符串 //CharSequence 是 String 的接口,表示字符序列
boolean equals (String str) 判斷當前字符串是否與指定內容相等
boolean equalsIgnoreCase (String str) 判斷當前字符串是否與指定內容相等。忽略大小寫
boolean isEmpty () 判斷當前字符串是否爲空。true 表示空
String toUpperCase () 將字母轉換成大寫,若是是大寫則不變
String toLowerCase () 將字母轉換成小寫,若是是小寫則不變
String substring (int start) 截取從 start 索引開始到最後的子字符串
String substring (int start,int end) 截取指定位置的子字符串。start:開始索引(包含)。end:結束索引(不包含)
char[] toCharArray () 字符串變爲 字符數組
char charAt (int index) 返回指定索引處的字符
int indexOf (String ch) 返回指定字符串在此字符串中第一次出現處的索引。找到就返回索引,找不到就返回-1
int indexOf (String ch,int xx) 從索引 xx 開始查找, 返回指定字符串在此字符串中第一次出現處的索引,找到就返回索引,找不到就返回-1
String replace (char oldChar,char newChar) 使用 new 替換全部的 old,並返回新字符串
String toString () 返回字符串自己
int compareTo (String str) 比較兩個字符串的前後大小順序。返回:正數、0、負數。
String[] split (String x) 以指定字符串 X 爲參照,切割字符串,返回字符串數組。

1.3 擴展練習

下面的需求所對應的方法,你們本身動手在 API 中查找(就在上面),並進行方法使用。數組

  • 判斷該字符串的內容是否爲空的字符串
  • 獲取 指定字符串,在當前字符串中第一次出現的位置
  • 獲取該字符串中指定位置上的字符
  • 把該字符串轉換成 小寫字符串
  • 把該字符串轉換成 大寫字符串
  • 在該字符串中,將給定的舊字符,用新字符替換
  • 在該字符串中,將給定的舊字符串,用新字符串替換
  • 去除字符串兩端空格,中間的不會去除,返回一個新字符串

1.4 字符串的特殊性

字符串是特殊的引用類型,由於真正的字符串數據在常量池中。設計

常量池中的每個字符串都是常量,一旦生成,不可改變。code

  • 示例1:
String str1 = "hello";
String str2 = "hello";

//值爲true
//說明str1和str2中保存的常量池地址是同一個
System.out.println(str1==str2);

  • 示例2:
String str1 = new String("hello");
String str2 = "hello";

//值爲false
//說明str1和str2中保存的常量池地址是不一樣的
System.out.println(str1==str2);

  • 示例3:
String str1 = "hello";
String str2 = "hello Java";

//值爲false
//說明str1和str2中保存的常量池地址是不一樣的
System.out.println(str1==str2);

  • 注意:
字符串的特殊保存方式,是爲了提升運行速度,節約內存空間而設計;
因此咱們不用 = = 進行字符串的比較,由於比較的僅是地址,無心義,
咱們使用 equals 方法比較兩個字符串值
相關文章
相關標籤/搜索