關於String的學習總結

---------------------- android培訓java培訓、期待與您交流! ----------------------

 

每天總結一點點,爲進黑馬而努力!

一:String 類?

字符串是一個特殊的對象,字符串一旦被初始化就不可以改變

String s1="abc"; //s1 是一個類類型變量,指向了一個對象“abc” ,一旦初始化就不可以改變,在內存中只有一個對象
String s2=new String("abc"); //在內存中有兩個對象
總結:字符串自身的特點:
1.它是一個對象
2.它是一個常量,不能被改變
3.s1 和s2的區別
4.字符串的比較有自己獨特的方式equals判斷內容是否相同

二、字符串常見的操作有哪些?
1.獲取
 1.字符串中包含的字符的個數,也就是字符串的長度
 int  length() 獲取長度
    2.根據位置上獲取指定位置上的字符
 char charAt(int index)
 3.根據字符獲取在字符串中的位置
 int indexOf(int ch)  //返回指定字符在此字符串中第一次出現處的索引。
 int indexOf(int ch,int fromIndex) //返回在此字符串中第一次出現指定字符處的索引,從指定的索引開始搜索。
 int indexOf(String str) //返回指定子字符串在此字符串中第一次出現處的索引。
 int indexOf(String str,int fromIndex) //返回指定子字符串在此字符串中第一次出現處的索引,從指定的索引開始。
 int lastIndexOf(int ch) //返回指定字符在此字符串中最後一次出現處的索引。
 int lastIndexOf(int ch,int fromIndex) //返回指定字符在此字符串中最後一次出現處的索引,從指定的索引處開始進行反向搜索。
 int lastIndexOf(String str) //返回指定子字符串在此字符串中最右邊出現處的索引。
 int lastIndexOf(String str,int fromindex) //返回指定子字符串在此字符串中最後一次出現處的索引,從指定的索引開始反向搜索。


2.判斷

 1.字符串中是否包含某一個字串?
 boolean contains(String str) //當且僅當此字符串包含指定的 char 值序列時,返回 true。
 特殊之處:indexOf(str)   //可以索引str在字符串中第一次出現的位置,如果爲-1,則不存在
   所以也可以用於對指定字符串的判斷是否包含,if(str.indexOf("aa")!=-1) 而且該方法既可以判斷字符串是否包含又可以獲取出現的位置
   如果只爲判斷,如果既要判斷,又要那位置,則使用indexOf()最方便,對象直接調用
 2.字符串中是否有內容?
 boolean isEmpty() //當且僅當 length() 爲 0 時返回 true。
 3.字符串是否以指定內容開頭?
 boolean startsWith(String str) //測試此字符串是否以指定的前綴開始。
 boolean startsWith(String str,int toffset) // 測試此字符串從指定索引開始的子字符串是否以指定前綴開始。
 4.字符串是否以指定內容結尾?
 boolean endsWith(String str) //測試此字符串是否以指定的後綴結束。
 
 5.判斷字符串的內容是否相同
 boolean equals(Object obj) // 將此字符串與指定的對象比較。複寫了Object類中的equals方法,比較的是對象
 
 6.判斷字符串內容是否相同,並忽略大小寫
 boolean equalsIgnoreCase(String str) // 將此 String 與另一個 String 比較,不考慮大小寫。

3.轉換
 
 1、將字符數組轉成字符串
  構造函數: new String(char[] value) // 分配一個新的 String,使其表示字符數組參數中當前包含的字符序列。
     new String(char[] value,int offset, int count) //分配一個新的 String,它包含取自字符數組參數一個子數組的字符。
     new String(value,0,value.length) //整個數組
  靜態方法: static String copyValueOf(char[] value)
     static String copyValueOf(char[] value,int offset,int count)
     static String valueOf(char[] value) //返回 char 數組參數的字符串表示形式。
     static String valueOf(char[] value,int offset,int count) //返回 char 數組參數的特定子數組的字符串表示形式


 2、將字符串轉成字符數組
  char[] toCharArray() //將此字符串轉換爲一個新的字符數組。


 3、將字節數組轉成字符串
  構造函數: new String(byte[] bytes) // 通過使用平臺的默認字符集解碼指定的 byte 數組,構造一個新的 String。
     new String(byte[] bytes,int offset,int length)// 通過使用平臺的默認字符集解碼指定的 byte 子數組,構造一個新的 String。
     new String(byte[] bytes,Charset charset) //通過使用指定的 charset 解碼指定的 byte 數組,構造一個新的 String。
     new String(byte[] bytes,String charsetName) // 通過使用指定的 charset 解碼指定的 byte 數組,構造一個新的 String。
     new String(byte[] bytes,int offset,int length,Charset charset)// 通過使用指定的 charset 解碼指定的 byte 子數組,構造一個新的 String。
     new String(byte[] bytes,int offset,int length,String charsetName) // 通過使用指定的字符集解碼指定的 byte 子數組,構造一個新的 String。

 4、將字符串轉成字節數組
 byte[] getBytes() // 使用平臺的默認字符集將此 String 編碼爲 byte 序列,並將結果存儲到一個新的 byte 數組中。
 byte[] getBytes(Charset charset) //使用給定的 charset 將此 String 編碼到 byte 序列,並將結果存儲到新的 byte 數組。
 byte[] getBytes(String charsetName) //  使用指定的字符集將此 String 編碼爲 byte 序列,並將結果存儲到一個新的 byte 數組中。

 注意:字符串和字節數組轉換過程中是可以指定編碼表的,但凡做編碼操作必須編程字節數組纔可以,字符數組不行

 5、將基本數據類型轉換成字符串
  static String valueOf(int i) //返回 int 參數的字符串表示形式。
  // 3+""; String.valueOf(3) ;專業寫法,但第一個中常用,將3轉換成字符串類型
  static String valueOf(long l) // 返回 long 參數的字符串表示形式。
  static String valueOf(float f) // 返回 float 參數的字符串表示形式。
  static String valueOf(double d) // 返回 double 參數的字符串表示形式。
  static String valueOf(double c) //   返回 char 數組參數的字符串表示形式。
  static String valueOf(boolean b) //返回 boolean 參數的字符串表示形式。

 6、如何將字符串指定的部分賦值到目標數組裏
  void getChars(int srcBegin,int srcEnd,char[] dst,dstBegin) //使用指定的字符集將此 String 編碼爲 byte 序列,並將結果存儲到一個新的 byte 數組中。
  char[] dst=new char[10];
  String str="adfadf;"
  str.getChars(1,4,dst,1); 包含頭不包含尾


4.替換
  1.字符串中的字符替換操作 /
  String replace(char oldChar,char newChar) //返回一個新的字符串,它是通過用 newChar 替換此字符串中出現的所有 oldChar 得到的。
  String replace(CharSequence target,CharSequence replacement)  //使用指定的字面值替換序列替換此字符串所有匹配字面值目標序列的子字符串。
  String replaceAll(String regex,String replacement) //使用給定的 replacement 替換此字符串所有匹配給定的正則表達式的子字符串。
  String replaceFirst(String regex,String replacement) //使用給定的 replacement 替換此字符串匹配給定的正則表達式的第一個子字符串。
  
  注意 :如果替換的字符不存在,返回的還是原字符串

5.切割
  
  String[] split(String regex) // 根據給定正則表達式的匹配拆分此字符串。
  String[] split(String regex,int limit) //根據匹配給定的正則表達式來拆分此字符串。

6.字串
  獲取字符串中的一部分
  String substring(int beginIndex) // 返回一個新的字符串,它是此字符串的一個子字符串。
  String substring(int beginIndex ,int endIndex) // 返回一個新字符串,它是此字符串的一個子字符串。
  注意: substring(int beginIndex, int endIndex) //包含頭不包含尾
    str.substring(0,str.length()) //整個字符串

7.轉換,去除空格:

  將字符串轉換成大寫或小寫
  String toUpperCase() //使用默認語言環境的規則將此 String 中的所有字符都轉換爲大寫。
  String toUpperCase(Locale locale) //使用給定 Locale 的規則將此 String 中的所有字符都轉換爲大寫。

  String toLowerCase() //使用默認語言環境的規則將此 String 中的所有字符都轉換爲小寫。
  String toLowerCase(Locale locale) //使用默認語言環境的規則將此 String 中的所有字符都轉換爲小寫。
  
  將字符串兩端的空格全都去除
  String trim() //返回字符串的副本,忽略前導空白和尾部空白。

8.比較
  對兩個字符串進行自然順序的比較
  int compareTo(String anotherString) // 按字典順序比較兩個字符串。
  int compareToIgnoreCase(String str)//按字典順序比較兩個字符串,不考慮大小寫。

 

---------------------- android培訓java培訓、期待與您交流! ----------------------詳細請查看:http://edu.csdn.net/heima
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章