Java中實現String字符串分割的3種方法

Java中實現String字符串分割的3種方法

方法1:split(string) 方法

使用瞭 split(string) 方法通過指定分隔符將字符串分割為數組

public class Test {
    public static void main(String[] args) {
        String a = "1-1-1-1";
        String[] temp;
        String delimiter = "-";// 指定分割字符
        temp = a.split(delimiter);// 分割字符串
        System.out.println(Arrays.toString(temp));//[1, 1, 1, 1]
        for (int i = 0; i < temp.length; i++) { //for 循環
            System.out.print(temp[i]); //1111
        }
    }
}

[1, 1, 1, 1]
1111

在java.lang包中有String.split()方法,返回是一個數組。“.”和“|”都是轉義字符,必須得加"“;
如果用“.”作為分隔的話,必須是如下寫法:String.split(”\.“),這樣才能正確的分隔開,不能用String.split(”.“);
如果用“|”作為分隔的話,必須是如下寫法:String.split(”\|“),這樣才能正確的分隔開,不能用String.split(”|");

方法2:substring方法

substring(int beginIndex)該子字符串從beginIndex處的字符開始,直到此字符串末尾。
substring(int beginIndex, int endIndex)該子字符串從指定的 beginIndex 處開始,直到索引 endIndex – 1 處的字符。註意:其它一些語言第二個參數往往代表長度,JAVA不一樣。該子字符串的長度為 endIndex-beginIndex。

public class Test2 {
    public static void main(String[] args) {
        String a = "1-1-1-1";
        String str1 = a.substring(0,1);
        System.out.println(str1);
        String str2 = a.substring(2,3);
        System.out.println(str2);
        String str3 = a.substring(4,5);
        System.out.println(str3);
        String str4 = a.substring(6);
        System.out.println(str4);
    }
}

1111

方法3:StringTokenizer方法

Java中substring方法可以分解字符串,返回的是原字符串的一個子字符串。如果要講一個字符串分解為一個一個的單詞或者標記,可用StringTokenizer來解決
String 類的 split 方法,其實在字符串分割時可以調用 StringTokenizer,實例化一個 StringTokenizer 的對象,通過 hasMoreTokens() 與 nextToken()進行判斷並打印分割後的子字符串。

public class Test {
    public static void main(String[] args) {
        String a = "1-1-1-1";
        StringTokenizer result = new StringTokenizer(a,"-");   // 實例化對象,並指向以 - 對 a 進行分割
        while(result.hasMoreTokens()){ // 對 result 遍歷並打印子字符串; 
            System.out.println(result.nextToken());
        }
    }
}

1
1
1
1

擴展:JAVA 截取字符串的三種方法 subString,StringUtils,split

主要有以下幾種方法:

1、通過subString()方法來進行字符串截取(最常用)

2、通過StringUtils提供的方法3

3、split()+正則表達式來進行截取

1、通過subString()方法來進行字符串截取,返回字符串中的子字符串,在java中有兩種用法

第一種,傳遞一個參數:

public String substring(int beginIndex)               
 //該子字符串從指定索引處的字符開始,直到此字符串末尾。public String substring(int beginIndex)               
 //該子字符串從指定索引處的字符開始,直到此字符串末尾。

第二種,傳遞兩個參數:

public String substring(int beginIndex, int endIndex)  
//從指定的 beginIndex 處開始,直到索引 endIndex - 1 處的字符。因此,該子字符串的長度為 endIndex-beginIndex。

//參數說明:beginIndex — 起始索引(包括)、endIndex — 結束索引(不包括)。
示例代碼:

public static void main(String[] args) {
    String Str = new String("hello wrold");  
    System.out.print("返回值,從第4位截取到字符串末尾 :" );
    System.out.println(Str.substring(4) );
    System.out.print("返回值,從第4位截取到第10位 :" );
    System.out.println(Str.substring(4, 10) );
}

運行結果

返回值,從第4位截取到字符串末尾 :   o wrold
返回值,從第4位截取到第10位    :   o wrol

2、通過StringUtils提供的方法

//與第一種方法效果一樣
StringUtils.substring("hello world", 4);     // 返回值,從第4位截取到字符串末尾 : o wrold
StringUtils.substring("hello world", 4, 10); // 返回值,從第4位截取到第10位    :   o wrol
//截取某個字符串之前的字符
StringUtils.substringBefore("hello world", "l"); 
//結果是:he          這裡是以第一個”l”,為標準。
StringUtils.substringBeforeLast("hello world", "l");
//結果為:hello wor   這裡以最後一個“l”為準。
//截取某個字符串之後的字符
StringUtils.substringAfter("hello world", "l");
//結果是:lo world   這裡是以第一個”l”,為標準。
StringUtils.substringAfterLast("hello world", "l");
//結果為:d          這裡以最後一個“l”為準。
//截取兩個字符串之間隔的字符
StringUtils.substringBetween("hello world", "o");    
//結果是: w   兩個o之間的字符串。   
StringUtils.substringBetween("hello world", "l", "r"); 
//結果是: lo wo   第一個字符“l”與第一個字符“r”之間的字符串   
StringUtils.substringsBetween("hello world", "l", "r");
//結果是:數組 [lo wo]   第一個字符“l”與第一個字符“r”之間的字符串,以數組形式返回。

用StringUtils需要導入common-lang3包

<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>

3、split()+正則表達式來進行截取

將字符串按照分割符截取,以數組形式返回

String str = "hello, name, 12345, 6789";
String[]  strs=str.split(",");
for(int i=0,len=strs.length;i<len;i++){
    System.out.println(strs[i].toString());
}

運行結果

hello
name
12345
6789

到此這篇關於Java中實現String字符串分割的3種方法的文章就介紹到這瞭,更多相關java string字符串分割內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: