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):返回的是str在字串中第一次出現的位置。 int indexOf(String str, int fromIndex) :從fromIndex指定位置開始,擷取str在字串中出的位置。 int lastIndexOf(int ch):從串尾開始數。
2、判斷 2.1字串中是否包含某個子串 boolean contains(str): 特殊之處:indexOf(str):可以索引str第一次出現位置,如果返回-1.表示該str不在字串中存在。 所以,也可以用於對指定判斷是否包含。 if(str.indexOf(“aa”)!=-1) 而且該方法即可以判斷,也可以擷取出現的位置。 2.2字元中是否有內容 boolean isEmpty():原理就是判斷長度是否為0。 2.3字串是否以指定內容開頭。 boolean startsWith(str). 2.4字串是否以指定內容結尾 boolean endsWith(str). 2.5判斷字串內容是否相同,複寫了Object類中的equals方法 boolean equalsIgnoreCase(). 3、轉換 3.1將字元數群組轉換成字串 建構函式:String(char[]) String(char[],offset,count):將字元數組中的一部分轉成字串。 靜態方法:static String copyValueOf(char[]); static String copyValueOf(char[] data,int offset,int count); static String valueOf(char[]); 3.2將字串轉成字元數組。 char[] toCharArray(); 3.3將位元組數組轉成字串 String(byte[]) String(byte[],offset,count);將位元組數組中的一部分轉成字串 3.4將字串轉成位元組數組 byte[] getBytes(); 3.5將基礎資料型別 (Elementary Data Type)轉成字串 static String valueOf(int);也開始int資料類型+”“;即加一個Null 字元串,就轉成字串 static String valueOf(double); //3+”“;//String.value(3); 特殊:字串和位元組數組在轉換過程中國,是可以指定編碼錶的。 4、替換
String replace(oldchar,newchar);
5、切割 String[] split(regex);以字串中的某一個字元切割成一個字串數組 6、子串,擷取字串中的一部分 String substring(begin); String substring(begin,end); 7、轉換,去除空格,比較 7.1將字串轉成大寫或則小寫 String toUpperCase(); String toLowerCase(); 7.2將字串兩端的多個空格去除 String trim(); 7.3對兩個字串進行自然順序的比較 int compareTo(String); 程式碼範例:
public class StringDemo01 { public static void sop(Object obj) { System.out.println(obj); } public static void method_1(){ String s1 = "abc";//s1是一個類類型變數,"abc"是一個對象 //字串最大特點:一旦被初始化就不可以被改變 String s2 = new String("abc"); //s1和s2有什麼區別。s1在記憶體中是一個對象,s2在記憶體中有兩個對象。 System.out.println(s1==s2); sop(s1.equals(s2));//String類複寫了Object類中equals方法,該方法用於判斷字串是否相同 } public static void method_2(String s){ char ch = s.charAt(3);//返回指定索引處的 char 值 sop("ch="+ch); int num = s.codePointAt(3);// 返回指定索引處的字元(Unicode 代碼點) sop("num="+num); String s1 ="qq"; s1 = s1.concat("mm");//將指定字串串連到此字串的結尾。 sop("s1="+s1); sop("qq"+"mm"); String a = "opq"; String b = "opq"; System.out.println("a==b:"+(a==b)); } public static void method_7(){ String s = " Hello Java "; sop(s.toLowerCase());//小寫 sop(s.toUpperCase());//大寫 sop(s.trim());//去首尾的空格 String s1 = "alc"; String s2 = "aaa"; sop(s1.compareTo(s2));//比較兩個字串,返回正數則前者大於後者,0則相等,負數則反之 } public static void method_substring(){ String s = "abcdefghijklmn"; sop(s.substring(2));//從指定位置開始到結尾,如果角標不存在,會出現字串角標越界異常。 sop(s.substring(2, 4));//包含頭,不包含尾,s.substring(0,s.length()); } public static void method_split(){ String s = "zhangsan,list,wangwu,chenqi"; String[] array = s.split(","); for (String str : array) { sop(str); } } public static void method_replace(){ String s = "hello java"; String s1 = s.replace('q', 'n');//如果要替換的字元不存在,返回的還是原串. String s2 = s.replace("java", "world"); sop("s="+s1); sop("s1="+s1); sop("s2="+s2); } public static void method_trans(){ char[] arr = {'a','b','c','d','e','f'}; String s = new String(arr,1,3); sop("s="+s); String s1 = "zxcvbnm"; char[] chs = s1.toCharArray(); for (char c : chs) { sop("ch="+c); } } public static void method_is(){ String str = "ArrayDemo.java"; //判斷檔案名稱是否是Array單詞開頭 sop(str.startsWith("Array")); //判斷檔案名稱是否以.java結尾的檔案 sop(str.endsWith(".java")); //判斷檔案中是否包含Demo sop(str.contains("Demo")); } public static void method_get(){ String str = "abcdeakpf"; //長度 sop(str.length()); //根據索引擷取字元 sop(str.charAt(3));//當訪問到字串中不存在的角標時會發生StringIndexOutOfBoundsException。 //根據字元擷取索引 sop(str.indexOf('m',3));//如果沒有找到,返回-1 //反向索引一個字元出現位置 sop(str.lastIndexOf("a")); } public static void main(String[] args) {// method_get();// method_is(); method_7(); }}