1. 程式人生 > 其它 >字串_Java學習筆記

字串_Java學習筆記

字串的特點:

  1. 字串的內容永不可變
  2. 正是因為字串不可改變,所以字串是可以共享使用的
  3. 字串效果上相當於是char[ ]字元陣列,但是底層原理是byte[ ]位元組陣列

注意:程式中所有的雙引號字串,都是String類的物件,就算沒有new,也照樣是字串

字串的3+1(3種構造方法+1種直接建立)中建立方法:

三種構造方法

  • public String( );  建立一個空白字串,不含有任何內容
  • public String(char[ ] array);  根據字元陣列的內容,來建立對應的字串
  • public String(byte[ ] array);  根據位元組陣列的內容,來建立對應的字串

一種直接建立

  • String 物件名="字串內容";  //右邊直接用雙引號
 1         String str1=new String("jslkfj");
 2         System.out.println("第2種建立方法"+str1);
 3 
 4         char[] str=new char[]{'s','o','k'};
 5         String str2=new String(str);
 6         System.out.println("第3種建立方法"+str2);
 7 
 8         byte[] str_=new
byte[]{65,66,67}; 9 String str3=new String(str_); 10 System.out.println("第4種建立方法"+str3); 11 12 //最常用也最簡單 13 String str4="helloworld"; 14 System.out.println("第5種建立方法"+str4);

字串常量池

  1.對於引用型別來說,==進行的是地址值比較  
  2.字串常量池是Java記憶體堆中的一塊儲存區域,專門用來儲存字串直接創建出的字串物件,而用其他方法建立的陣列不在池中

字串常用成員方法

//與比較相關的常用方法
public boolean equals(Object obj);  <比較兩個字串是否相等>
注意:任何物件都能用Object進行接收;
   equals方法具有對稱性;
   如果比較雙方一個常量一個變數,推薦:"~~".equals.str,如果變數在前如果變數沒有      賦值,會出現NullPointerException(空指標異常)錯誤。

public boolean equalsIgnoreCase(String str);  <忽略大小寫,進行內容比較>
  


//與獲取相關的常用方法
public int length();  <獲取字串長度>
punlic String concat (String str);  <將當前字串和引數字串拼接生成新的字串>
public char charAt(int index);  <獲取當前索引值位置的字元>
public int indexOf(String str);  <查詢引數字串在本字串當中首次出現的索引位置,若沒有返回-1>

//字串的擷取方法
public String substring(int index);  <返回新擷取從引數位置一直到字串末尾的子串>
public String substring(int begin,int end);  <返回begin到end位置的子串>
注意:[begin,end),包含左邊不包含右邊。

//與轉換相關的常用方法
public char[] toCharArray();  <將當前字串拆分成字元陣列>
public byte[] getByte();  <獲得當前字串底層的位元組陣列>
public String replace(CharSequence oldString,CharSequence newString);
<將所有出現的老字元子串替換成新的字元子串,返回替換後的字串>

//分割字串的方法
public String[] split(String regex);  <按照引數的規則,將字串切分為若干部分>
注意:split方法的引數其實是一個“正則表示式”,如果要用"."切割,必須寫"\\."。