Java常用API(String類)
Java常用API(String類)
概述:
java.lang.String 類代表字串。Java程式中所有的字串文字(例如 "abc" )都可以被看作是實現此類的例項1. 字串不變:字串的值在建立後不能被更改
String s1 = "abc"; s1 += "d"; System.out.println(s1); // "abcd" // 記憶體中有"abc","abcd"兩個物件,s1從指向"abc",改變指向,指向了"abcd"。
這裡我們就通過一個記憶體圖來更好的向大家解釋
首先我們來寫一段簡單的程式碼,然後畫出該程式碼的記憶體圖來幫助大家理解
1 public classTest { 2 public static void main(String[] args) { 3 String str1="123"; 4 String str2="123"; 5 String str3=new String("123"); 6 System.out.println(str1==str2);//true 7 System.out.println(str1==str3);//false 8 System.out.println(str2==str3);//false 9 }10 }
首先我給大家引入一個字串常量池的概念
什麼是字串常量池呢,如上圖
String str1=="123"
String str2=="123"
這樣子命名的字串的值就會被存入字串常量池,而String str3=new String("123")這樣new 出來的則不會
顧str1==str3的值為false,而str1==str2的結果則為true,下面通過一張圖帶大家更加深刻的去理解
當使用String str1="XXXXX"格式命名的時候,會先去字串常量池中找,如果沒有再建立,這樣極大的
減小了記憶體的浪費
下面我來介紹幾個String類的常用方法
1判斷字串內容是否相等的方法
public boolead equals(Object anObject)
2忽略大小寫判斷字串內容是否相同的方法
public boolean equalsIgnoreCase (String anotherString)1 public class Test { 2 public static void main(String[] args) { 3 String str1="abc"; 4 String str2="abc"; 5 String str3="ABC"; 6 System.out.println(str1.equals(str2));//true 7 System.out.println(str1.equals(str3));//false 8 System.out.println(str1.equalsIgnoreCase(str3)); 9 10 } 11 }
獲取功能的方法
public int length() 返回字串長度
public String concat (String string) 將指定字串連線到該字串末尾
public char charat(int index) 返回指定索引處的char值
public int indexOf(String str) 返回指定字串第一次出現的地方
public String substring (int beginIndex) 剪取字串,字串的範圍為從begin到末尾
1 package cn.itcast; 2 3 public class Test { 4 public static void main(String[] args) { 5 String str1="abc"; 6 String str2="abc"; 7 System.out.println("字串長度是:"+str1.length()); 8 String concat = str1.concat(str2); 9 System.out.println("連線後的字串:"+concat); 10 System.out.println("第一個字母:"+str1.charAt(0)); 11 System.out.println("b第一次出現地方的索引:"+str1.indexOf("b")); 12 String substring = str1.substring(1); 13 System.out.println("擷取後的字串:"+substring); 14 } 15 }
結果
轉換功能的方法
public char[] toCharArray() 將字串轉換為陣列
public byte[] getbytes() 將字串轉換為新的位元組陣列
public String replace(CharSequence target,CharSequence replace) 替換字串中的指定字元
1 public class Test { 2 public static void main(String[] args) { 3 String str1="abc"; 4 char[] chars = str1.toCharArray(); 5 byte[] bytes = str1.getBytes(); 6 System.out.println("轉換為陣列:"); 7 for (int i = 0; i < chars.length; i++) { 8 System.out.print(chars[i]+","); 9 } 10 System.out.println(); 11 System.out.println("轉換為位元組陣列:"); 12 for (int i = 0; i < bytes.length; i++) { 13 System.out.print(bytes[i]+","); 14 } 15 System.out.println(); 16 String replace = str1.replace("a", "A"); 17 System.out.println("替換後的字串:"+replace); 18 } 19 }
結果
分割方法
public String[] split(String regex)將字串按照指定的分隔符分隔成陣列
package cn.itcast; import com.alibaba.druid.sql.visitor.SQLASTOutputVisitorUtils; public class Test { public static void main(String[] args) { String str1="aa,bb,cc"; String[] split = str1.split(","); System.out.println("以逗號分隔:"); for (int i = 0; i < split.length; i++) { System.out.println(split[i]); } } }
結果
以上就是有關字串的一些基本知識,如果有錯誤還請各位批評指正