標籤:
class Test{ public static void main(String[] args) { String s1 = "abc"; //s1是一個類類型的變數,abc是一個對象,字串的最大特點,一單被初始化就不能改變。s1是字串的引用。 String s2 = new String("abc"); System.out.println(s1==s2); System.out.println(s1.equals(s2));//String類複寫了Object類中的equals方法, //用於判斷兩個字串是否相同 //s1,s2的區別:s1在記憶體中一個對象,s2有兩個對象。 }}
字串類型常用方法
String類適用於描述字串事物,提供了多個方法對字串進行操作。常見的方法有: 1,擷取。 1.1 字串中包含的字元數,即字串長度。 int length() 1.2 根據位置擷取位置上的某個字元。char charAt(int index) 1.3 根據字元擷取該字元的在字串中的位置。 int indexOf(int ch) //因為接收的是ASCII碼,返回ch在字串中第一次出現位置。 int indexOf(int ch,int fromindex)//從指定位置開始擷取位置。 int indexOf(String str) int indexOf(String str,int fromindex) 例子: class Test{ public static void method_get() { String str = "abcdeakpf"; //長度 sop(str.length()); //根據字元擷取索引 sop(str.indexOf(‘a‘,3)); //如果沒有找到返回-1 //根據索引擷取字元 sop(str.charAt(4)); //反向尋找字元出現的位置 sop(str.lastIndexOf(‘a‘)); } public static void main(String[] args) { method_get(); } public static void sop(Object obj) { System.out.println(obj); }} 2,判斷。 2.1 字串中是否包含某一個字串。boolean contains(str) 2.2 字串中是否有內容。boolean isEmpty() 2.3 字串是否是以指定內容開頭。 boolean startsWith(str); 2.4 字串是以什麼結尾。 boolean endsWith(str); 2.5 判斷字串內容是否相同 boolean equals(str); 2.6 忽略大小寫判斷內容是否相同 boolean equalsIgnoreCase(str); class Test{ public static void method_is() { String str = "ArrayDemo.java"; sop(str.startsWith("Array")); sop(str.endsWith(".java")); sop(str.contains("Demo")); } public static void main(String[] args) { method_is(); } public static void sop(Object obj) { System.out.println(obj); }} 3,轉換。 3.1 將字元數組轉成字串 建構函式: String(char []) / String(char [],offeset,count):字元數組部分轉為字串 靜態方法:static String copyValueOf(char []) ,static String copyValueOf(char [],offeset,count) 3.2 將字串轉成字元數組 char [] toCharArray(); 3.3 將位元組數組轉成字串 Stirng(byte []) 3.4 將字串轉成位元組數組 byte [] getBytes() 3.5 將基礎資料型別 (Elementary Data Type)轉換成字串:static String valueOf(int/doubule) 同 3+"" 舉例: class Test{ public static void method_trans() { char [] arr ={‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘}; String s = new String(arr); sop(s); String s2 = new String(arr,1,3); sop(s2); String s1 = "zxcvbnm"; char [] chs = s1.toCharArray(); for(int x=0;x<chs.length;x++) sop(chs[x]); } public static void main(String[] args) { method_trans(); } public static void sop(Object obj) { System.out.println(obj); }} 4,替換:String replace(oldchar,newchar)5,切割:String split(regex)6,子串:擷取字串中的一部分。:String substring(begin)/(begin,end)7,轉換,去除空格,比較。 7.1 字串轉成大寫或者小寫。String toUpperCase(); String toLowerCase(); 7.2 將字串兩端多餘空格去除。String trim(); 7.3 將字串進行自然順序比較。int compareTo(stirng); 練習1:除去兩端空格:charAT,substring(begin,end)練習2:反轉字串:toCharArray()練習3:統計指定字串出現次數,int indexOf(str,index)練習4:尋找最大長度子串:兩個迴圈,控制最大子串長度,判斷是否存在,boolean str.contains(str) //原來和indexOf類似 練習4代碼:public class Test1{ public static void main(String args []) { String a="sifduhsdifhsahasiudhiszhangxushissshuidhiasdfasndsf"; String a1="asdfsadfzhangxushissshuidkljfg"; sop(getCommon(a,a1)); } public static String getCommon(String str,String str1) { for(int x=0;x<str.length();x++) { for(int y=0;y<=x;y++) { String str2=str1.substring(y,str1.length()-x+y); if(str.contains(str2)) return str2;11111 } } return null; } public static void sop(Object c) { System.out.println(c); } }
StringBufferStringBuffer是字串緩衝區。 是一個容器:1,長度是可以變化的2,可以直接操作多種資料類型3,最終會通過toString方法變成字串 功能:1,儲存 StringBuffer append():將指定資料作為參數添加到已有資料的結尾處。返回的還是原緩衝區對象。 StringBuffer insert(index,資料):可以將指定資料插入到指定位置,0開始。2,刪除 StringBuffer delate(int start , int end):包含頭,不包含結尾。 StringBuffer delateCharAt(int index):刪除指定位置元素3,擷取 char charAt(int index) int indexOf(String str) int lastIndexOf(String str) int length() String substring(int start,int end)4,修改 StingBuffer replace(int start,int end,String str):將指定位置替換成指定字串 setCharAt(int index,char c):指定位置位置替換字元5,反轉。 StringBuffer reverse()6 char [] sb.getChars(int srcbegin,int srcend,char [],int index from char [])
StringBuilder
方法和StringBufffer差不多,基本都用。 不同之處在於:StringBuffer是線程同步的,是安全的。但老是判斷鎖,浪費資源。StringBuilder是不線程不同步的。多線程不建議使用。 升級三個因素1,建華書寫2,提高效率3,提供安全性
基礎資料型別 (Elementary Data Type)對象封裝類
byte Byteshort Shortint Integerlong Longboolean Booleanfloat Floatdouble Doublechar Character基礎資料型別 (Elementary Data Type) 對應的對象,類 基礎資料型別 (Elementary Data Type)封裝類的最常見作用就是,基礎資料型別 (Elementary Data Type)和字串類型之間的相互轉換。 --->:基礎資料型別 (Elementary Data Type)+“”;基礎資料型別 (Elementary Data Type).toString(基礎資料型別 (Elementary Data Type));如:Integer.toString(34);<---:格式: xxx a = Xxx.passXxx("string");int number=Integer.passInt("123"); String s = Strings.valueOf(String) public class Test1{ public static void main(String args []) { sop(Integer.MAX_VALUE); } public static void sop(Object c) { System.out.println(c); }}
JAVA 12 (String類)