Java——String類常用方法總結,看這一篇就夠啦(比較、查找、截取、替換、拆分、其他)

目錄

1、字符與字符串

2、字節與字符串

3、字符串比較

4、字符串查找

5、字符串截取

6、字符串替換

7、字符串拆分

8、其他操作方法


1、字符與字符串

很多編程語言都會用字符數組描述字符串,Java也有類似概念,String類中有一系列字符相關的操作方法:

序號 方法名稱 類型 描述
1

public String(char[] value)

構造 將全部的字符數組作爲String的內容
2

 public String(char[] value,intt offset,int count)

構造 將部分字符數組變爲字符串,設置字符數組的開始索引與使用個數
3

public char charAt(int index)

普通 返回指定索引位置的字符
4

 public char[] toCharArray()

普通 將字符串以字符數組的形式返回

【舉例】:字符串與字符數組間的轉換

        String str = "hello";
        char[] data = str.toCharArray();
        for(int x=0;x<data.length;x++){
            Log.d("TAG",data[x]+"、");
        }

字符串轉換爲字符數組後,可針對其中每一個字符進行操作,比如將小寫字母轉換爲大寫字母:

        String str = "helloworld";
        char[] data = str.toCharArray();
        for(int x=0;x<data.length;x++){
            data[x] -=32; //變成大寫
        }
        Log.d("TAG",new String(data));
        Log.d("TAG",new String(data,5,5)); 

【舉例】:判斷某一字符串是否全部由數字組成:將字符串轉換爲字符數組,便於進行每個字符的判斷其範圍是否在'0'~'9'之間;

    public static boolean isNumber(String str){
        char[] data = str.toCharArray();
        for(int x=0;x<data.length;x++){
            if(data[x]<'0' || data[x]>'9'){
                return false;
            }
        }
        return true;
    }

2、字節與字符串

字節與字符串的轉換,在實際開發中較多,以下幾個方法:

序號 方法名稱 類型 描述
1

 public String(byte[] bytes)

構造 將全部的字節數組變爲字符串
2

 public String(byte[] bytes,intt offset,int count)

構造 將部分字節數組變爲字符串,設置字節數組的開始索引與使用個數
3

 public byte[] getBytes()

普通 將字符串變爲字節數組
4 public byte[] getBytes(String charsetName) throws UnsupportedEncodingException 普通 編碼轉換

【舉例】:利用字節數組實現小寫字母變換爲大寫字母

        String str = "hello";
        byte[] data = str.getBytes();
        for(int x=0;x<data.length;x++){
            data[x] -=32;
        }
        System.out.println(new String(data));

以上代碼只是針對字節的簡單操作,實際開發中字節的使用通常結合IO、網絡進行的。

3、字符串比較

由前面幾個博文可知,字符串比較方法有equals方法,此方法是區分大小寫的比較,Java中針對字符串比較的方法有:

序號 方法名稱 類型 描述
1 public boolean equals(Object anObject) 普通 區分大小寫的字符串比較(是否相等)
2 public boolean equalsIgnoreCase(String anotherString) 普通 不區分大小的字符串比較(是否相等)可用於驗證碼
3 public int compareTo(String anotherString) 普通 比較字符串大小
4 public int compareToIgnoreCase(String str) 普通 不區分大小的比較字符串大小

compareTo方法最爲重要,如 A.compareTo(B)返回結果有三種:

  • >0: 字符串A>B;
  • <0:字符串A<B;
  • =0:字符串A=B;

應用比較簡單,不再舉例嘍。

4、字符串查找

從一個完整的字符串中查找子字符串,有以下方法:

序號 方法名稱 類型 描述
1 public boolean contains(CharSequence s) 普通 判斷某一個字符串是否存在
2 public int indexOf(String str) 普通 取得某一個字符串的索引位置,找不到返回-1
3 public int indexOf(String str,int fromIndex) 普通 從指定索引位置開始檢索子字符串位置,找不到就返回-1
4 public int lastIndexOf(String str) 普通 從後向前查找指定字符串,找不到返回-1
5 public int lastIndexOf(String str,int fromIndex) 普通 從指定位置,由後向前查找指定字符串,找不到返回-1
6 public boolean startsWith(String prefix) 普通 判斷是否以某個字符串開頭
7 public boolean startsWith(String prefix, int toffset) 普通 從指定位置判斷是否以某個字符串開頭
8 public boolean endsWith(String suffix) 普通 是否以某個字符串結尾

要查找中間的內容,基本都是使用contains()方法,但是它只能查找,不能判斷位置,JDK1.5以後出現的方法,1.5之前只能用indexOf()方法。

startsWith()方法、endsWith()方法在開發中比較實用。

5、字符串截取

將完整字符串 截取子字符串,方法如下:

序號 方法名稱 類型 描述
1 public String substring(int beginIndex) 普通 從指定索引位置(包含該位置的字符)截取至末尾
2 public String substring(int beginIndex, int endIndex) 普通 截取指定索引範圍內的字符串(包含起始索引,不包含end索引)

實際開發這種截取操作很常用,比較簡單,不再舉例贅述了。

6、字符串替換

將指定字符串替換爲其他內容,如下方法:

序號 方法名稱 類型 描述
1 public String replaceAll(String regex,String replacement) 普通 字符串的全部替換
2 public String replaceFirst(String regex,String replacement) 普通 替換第一個內容

【舉例】:觀察替換操作

        String str = "hello";
        System.out.println(str.replaceAll("l","L"));//輸出heLLo
        System.out.println(str.replaceFirst("l","L"));//輸出heLlo

實際開發中,利用替換操作可以消除數據中的全部空格:

        String str = "h e llo";
        System.out.println(str.replaceAll(" ",""));//輸出hello

7、字符串拆分

將完整字符串根據指定內容進行拆分,拆分後的結果爲字符串數組,方法如下:

序號 方法名稱 類型 描述
1 public String[] split(String regex) 普通 全部拆分
2 public String[] split(String regex,int limit) 普通 部分拆分

【舉例】:觀察全部拆分

        String str = "hello world";
        String[] data = str.split(" ");
        for (int i=0;i<data.length;i++){
            System.out.println(data[i]);
        }

【舉例】:觀察部分拆分

        String str = "hello world nice china";
        String[] data = str.split(" ",2);
        for (int i=0;i<data.length;i++){
            System.out.println(data[i]);
        }

【舉例】:拆分IP地址

        String str = "192.168.1.1";
        String[] data = str.split(".");
        for (int i=0;i<data.length;i++){
            System.out.println(data[i]);
        }

可以發現,按“.”拆分無結果返回,不能直接按"."拆分,因爲其屬於正則表達式的範疇。所以,需要進行轉義,使用"\\"。

        String str = "192.168.1.1";
        String[] data = str.split("\\.");
        for (int i=0;i<data.length;i++){
            System.out.println(data[i]);
        }

8、其他操作方法

除以上方法外,還有一些小的操作方法:

序號 方法名稱 類型 描述
1 public int length() 普通

取得字符串的長度(中英文長度一致,方便開發)

注意,String中使用的是方法,數組中使用的是屬性

2 public boolean isEmpty() 普通 判斷是否爲空(""),若是返回true,否則返回false
3 public String toUpperCase() 普通 針對字母,轉大寫
4 public String toLowerCase() 普通 針對字母,轉小寫
5 public String trim() 普通 去掉左右空格,不去中間字符
6 public String concat(String str) 普通 字符串的連接(基本不會使用,與+相同)

【舉例】:觀察trim

        String str = " h  ello   ";
        System.out.println(str.trim());

【舉例】很遺憾,String類中沒有提供initcap()函數的功能,用於首字母大寫,開發中很常用,我們自己實現

    public static String initCap(String str){
        if(str==null || str.length()==0){
            return str;
        }
        return str.substring(0,1).toUpperCase()+str.substring(1);
    }

 

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