一.String類概述
1.String的值是一個對象,也是一個常量不能被改變
2.String的equals方法是比較兩個字符串的內容
3.String s1=”abc” String s2=new String(“abc”) s1有一個對象,s2有兩個對象
二.String常見功能---獲取和判斷
1.獲取
1.1 字符串中包含的字符數,也就是字符串的長度。
int length():獲取長度。
1.2 根據指定位置獲取位置上的某個字符
char charAt(int index)
1.3 根據字符獲取該字符在字符串中的位置
Int indexOf(int ch):返回的是ch在字符串中第一次出現的位置
int indexOf(int ch,int fromIndex):從fromIndex指定位置開始,獲取ch在字符串中出現的位置
int indexOf(String str,int fromIndex): 從fromIndex指定位置開始,獲取ch在字符串中出現的位置,如果沒有找到返回-1
int lastIndexOf(String str):反向索引一個字符出現的位置
1 public static void method_get(){ 2 String str="abcdeakpf"; 3 //打印字符串的長度 4 sop(str.length()); //結果為5 5 //根據索引獲取字符 6 sop(str.charAt(4)); //結果為a 7 //根據字符獲取索引 8 sop(str.indexOf('a', 3)); //結果為5 9 //反向索引一個字符出現的位置 10 sop(str.lastIndexOf("a")); //結果為5 11 } View Code2.判斷
2.1 字符串中是否包含某一個子串
boolean contains(str)
特殊之處:indexOf(str):可以索引str第一次出現的位置,如果返回-1,表示該str不在字符串中存在,所以也可以用於判斷是否包含指定字符子串,而且可以獲取該子串出現的位置;
2.2 字符中是否有內容
boolean isEmpty():原理就是判斷length是否為0
2.3 字符串中是否以指定內容開頭
boolean startsWith(str);
2.4 字符串是以指定內容結尾
boolean endsWith(str);
2.5 判斷字符串內容是否相同,復寫了Object類中的equals方法
boolean equals(str);
2.6 判斷內容是否相同,忽略大小寫
boolean equalsIgnoreCase();
1 public static void method_is(){ 2 String str="ArrayDemo.java"; 3 //判斷文件名稱是否以Array單詞開頭 4 sop(str.startsWith("Array")); //結果為true 5 //判斷文件名稱是否是.java文件 6 sop(str.endsWith(".java")); //結果為true 7 //判斷文件名稱中是否包含Demo單詞 8 sop(str.contains("Demo")); //結果為true 9 } View Code3.字符串常見功能---轉換
3.1 將字符數組轉成字符串。
構造函數:String(char[])
String(char[],offset,count):將字符數組中的一部分轉成字符串
靜態方法:
static String copyValueOf(char[])
static String copyValueOf(char[],offset,count)
static String valueOf(cahr[])
3.2 將字符串轉成字符數組
char[] toCharArray();
3.3 將字節數組轉換成字符串
String(byte[])
String(byte[],offset,count):將字節數組中的一部分轉成字符串
3.4 將字符串轉換成字節數組
byte[] getBytes();
3.5 將基本數據類型轉換成字符串
static String valueOf(int)
static String valueOf(double)
3.6 特殊:字符串和字節數組在轉換過程中是可以指定編碼表的。
1 public static void method_trans(){ 2 char[] arr={'a','b','c','d','e','f'}; 3 String s=new String(arr,1,3); 4 sop("s="+s); //結果為bcd 5 6 String s1="zxcvbnm"; 7 char[] chs=s1.toCharArray(); 8 for (int i = 0; i < chs.length; i++) { 9 sop("ch="+chs[i]); 10 } 11 } View Code4.替換
String replace(oldchar, newchar)
如果要替換的字符不存在,返回的還是原串
1 public static void method_replace(){ 2 String s="Hello java"; 3 String s1=s.replace('a', 'n'); 4 String s2=s.replace("java", "world"); 5 sop("s="+s); //結果為Hello java 6 sop("s1="+s1); //結果為Hello jnvn 7 sop("s2="+s2); //結果為Hello world 8 } View Code5.切割
String[] split(regex);
1 public static void method_split(){ 2 String s="zhangsan,lisi,wangwu"; 3 String[] attr=s.split(","); 4 for (int i = 0; i < attr.length; i++) { 5 sop(attr[i]); //結果為zhangsan lisi wangwu 6 } 7 } View Code6.子串,獲取字符串中的一部分
String substring(begin):從指定位置開始到結尾,如果角標不存在,會出現角標越界異常
String substring(begin,end):從起始位置開始到結束位置為止,保護起始位置不包含結束位置
1 public static void method_sub(){ 2 String s="abcdef"; 3 sop(s.substring(2)); //結果為cdef 4 sop(s.substring(2, 4)); //結果為cd 5 } View Code7.轉換,去除空格,比較
7.1 將字符串轉換成大寫或者小寫
String toUpperCase();
String toLowerCase();
7.2 將字符串兩端的多個空格去除
String trim();
7.3 對兩個字符串進行自然順序的比較
int compareTo(String)
1 public static void method_7(){ 2 String s=" Hello Java "; 3 sop(s.toUpperCase()); 4 sop(s.toLowerCase()); 5 sop(s.trim()); 6 String s1="acc"; 7 String s2="aaa"; 8 sop(s1.compareTo(s2)); //結果為2(兩個Unicode值相減所得結果),表示s1大於s2 9 } View Code