String字符串的經常使用方法

1、String 的含義正則表達式


    String 是定義一個字符串對象(內存中的字符串都是一個對象。)
      String 一旦被初始化就不能被改變(能夠改變變量指向,可是不能改變對象內容)

    定義方式: String s1 = 「abc」; //在內存中存在一個對象。
          String s2 = new String("abc"); //在內存中存在兩個對象。
            String s3 = "abc";

      比較: s1 == s2 爲false
          s1 == s3 爲true (相同的字符串在靜態池中一旦存在,就不會再產生新的該字符串了,之後其再出現,都使用它)
        String的equals方法: s1.equals(s2) == true;

2、字符串的常見方法數組

    一、獲取
        1.一、字符串中包含的字符數(也就是字符串的長度)
            int length(); (注意與數組中的length作區別,數組中爲屬性,字符串中爲方法)

        1.二、某一個角標位置上的字符
            char charAt(int index); (當訪問的角標不存在時,提示字符串角標越界異常)

        1.三、根據字符獲取該字符在字符串中的角標位置
            int indexOf(int ch); 返回的是字符第一次出現的角標位置。
            int indexOf(int ch,int fromIndex); 返回的是從fromIndex開始字符出現的角標位置。

            int indexOf(String str); 返回的是字符串第一次出現的角標位置。
            int indexOf(String str,int fromIndex); 返回的是從fromIndex開始字符串 出現的角標位置。

              (當訪問的字符 或 字符串不存在時,返回 -1)

            int lastIndexOf(int ch): 反向索引(種類和解釋與正向索引相同 )
              注:反向索引只是從右向左索引找到第一次出現目標的角標位置, 返回的依然是角標位置。
    二、判斷

        2.一、判斷字符串中是否包含指定字符串
            boolean contains(CharSequence s) :CharSequence:爲String實現的接口

              特殊之處:indexOf(String str):能夠索引字符串str第一次出現的位置,若是返回 -1,則表示該str不在字符串內。
                  因此,也能夠用於對指定字符串判斷是否包含。
                    if(str1.indexOf(「aaa」) == -1)
                    並且該方法既能夠判斷,由能獲取位置。

        2.二、判斷字符串是否有內容
            boolean isEmpty() :當且僅當長度爲0時返回true。


        2.三、判斷字符串是否以某某開頭
            boolean startsWith(String prefix)

        2.四、判斷字符串是否以某某結尾
            boolean endsWith(String suffix)


        2.五、判斷字符串的內容是否相同
            boolean equals(Object anObject) (複寫了Object 類中的equals方法)

        2.五、判斷字符串的內容是否相同 ,(不考慮大小寫)
            boolean equalsIgnoreCase(String anotherString)

    三、轉換。
        3.一、 將字符數組轉換成字符串
            構造函數: String(char[] value)
                  String(char[] value, int offset, int count): 將數組中從下標offset開始,一共count位字符轉換成字符串。

            靜態方法: static String copyValueOf(char[] data)
                  static String copyValueOf(char[] data, int offset, int count)

                  static String valueOf(char[] data)


        3.二、 將字符串轉換成字符數組
                 char[] toCharArray()

        3.三、 將字節數組轉換成字符串
                 String(byte[] value)
                 String(byte[] value, int offset, int count): 將數組中從下標offset開始,一共count位字符轉換成字符串。
                      其餘方法參見 3.5。

        3.四、 將字符串轉換成字節數組
                 byte[] getBytes(String charsetName)

        3.五、 將基本數據類型轉換成字符串

                 static String valueOf(boolean b)
                 static String valueOf(char c)
                 static String valueOf(char[] data)
                 static String valueOf(double d) 等等。


              注意:字符串和字節數組在轉換過程當中是能夠指定編碼表的。


    四、替換

        String replace(char oldChar, char newChar) : 返回一個數組,它是用newChar 替換就數組中的oldchar等到的。(一個一個的替換)
        String replace(CharSequence target, CharSequence replacement) : 後替前,用新串替換原串中的子串。


        注:原字符串沒有改變,只是新出現了一個替換後的字符串(字符串一旦初始化,不能改變)
            若是要替換的字符沒有,仍是返回原串,不會生成新的字符串。

    五、切割,分割

        String[] split(String regex) : 指定其中某一個字符或字符串,以其下刀,切割字符串(其實應當依據正則表達式規則拆分)

    六、子串:(獲取一個字符串的一部分)

        String substring(int beginIndex) //從指定下標位置到結尾。
        String substring(int beginIndex, int endIndex) //從指定下標位置到結束下標位置前一個

    七、轉換、去除空格、比較

        7.1:將字符串轉換成大寫或者小寫。
              String toUpperCase()
              String toLowerCase()
        7.2:將字符串兩端多餘的空額去除。
              String trim()
        7.3:將兩個字符串進行天然順序的比較。
              int compareTo(String anotherString)
              int compareToIgnoreCase(String str) :不考慮大小寫。

            從第一位開始比較,比參數大返回正數,比參數小返回負數,都相等返回參數爲0:一旦在某一位上分出大小了,便再也不向後比較。




3、StringBuffer緩存

    定義:字符串緩衝區, 爲一個容器。

    特色:
      一、長度可變化。
      二、能夠直接操做多個數據類型。
      三、最終經過toString方法返回一個字符串。

    c: create u: update r:read d: delete

      一、存儲
        StringBuffer append():將指定數據做爲參數添加到已有數據的結尾處。
            注:在StringBuffer對象調用appeed方法後,返回的就是其自己。
        StringBuffer insert(int offset, 基本數據 b) : 從offest下標位開始插入 基本數據類型、字符串或者數組 b。
            注:在StringBuffer對象調用insert方法後,返回的就是其自己。

      二、刪除
        StringBuffer delete(int start, int end) : 移除下標start到 end-1的字符。
            注:在StringBuffer對象調用delete方法後,返回的就是其自己。
        StringBuffer deleteCharAt(int index) : 移除此序列指定下標位置的字符(char)。
            注:在StringBuffer對象調用deleteCharAt方法後,返回的就是其自己。

        清空緩衝區: sb.delate(0,sb.length());


      三、獲取
        char charAt(int index) 返回此序列中指定索引處的 char 值。
        int indexOf(String str) 返回第一次出現的指定子字符串在該字符串中的索引。
        int indexOf(String str, int fromIndex) 從指定的索引處開始,返回第一次出現的指定子字符串在該字符串中的索引。
        int lastIndexOf(String str) 返回最右邊出現的指定子字符串在此字符串中的索引。
        int lastIndexOf(String str, int fromIndex) 返回最後一次出現的指定子字符串在此字符串中的索引。


        String substring(int start) 返回一個新的 String,它包含此字符序列當前所包含的字符子序列。
        String substring(int start, int end) 返回一個新的 String,它包含此序列當前所包含的字符子序列。
        注意:這裏返回的是String,不StringBuffer。

          String toString():放回當前緩存區字符串。
          int length(): 返回字符數。



      四、修改

        StringBuffer replace(int start, int end, String str) 在start和end之間,用str替換

        void setCharAt(int index, char ch) 在index下標位置使用 字符dh替換原字符

      五、反轉

        StringBuffer reverse()

      六、
        void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
        將緩衝區中的指定數據存到指定的字符數組中,從指定位置開始存。



4、StringBuilder
    在jdk 1.5以後新加功能
      其他StringBuffer功能同樣。

      與StringBuffer的區別:
        StringBuffer是線程同步的。
        StringBuilder是線程不一樣步的。

          當是單個線程操做緩衝區時,建議使用 StringBuilder 其有更高的效率。


5、jdk版本升級的三因素安全

一、提升安全性
二、提升效率
三、簡化書寫 app

相關文章
相關標籤/搜索