Java中實(shí)現(xiàn)String字符串分割的3種方法
Java中實(shí)現(xiàn)String字符串分割的3種方法
方法1:split(string) 方法
使用了 split(string) 方法通過(guò)指定分隔符將字符串分割為數(shù)組
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 循環(huán) System.out.print(temp[i]); //1111 } } }
[1, 1, 1, 1]
1111
在java.lang包中有String.split()方法,返回是一個(gè)數(shù)組。“.”和“|”都是轉(zhuǎn)義字符,必須得加"“;
如果用“.”作為分隔的話,必須是如下寫法:String.split(”\.“),這樣才能正確的分隔開(kāi),不能用String.split(”.“);
如果用“|”作為分隔的話,必須是如下寫法:String.split(”\|“),這樣才能正確的分隔開(kāi),不能用String.split(”|");
方法2:substring方法
substring(int beginIndex)該子字符串從beginIndex處的字符開(kāi)始,直到此字符串末尾。
substring(int beginIndex, int endIndex)該子字符串從指定的 beginIndex 處開(kāi)始,直到索引 endIndex – 1 處的字符。注意:其它一些語(yǔ)言第二個(gè)參數(shù)往往代表長(zhǎng)度,JAVA不一樣。該子字符串的長(zhǎng)度為 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方法可以分解字符串,返回的是原字符串的一個(gè)子字符串。如果要講一個(gè)字符串分解為一個(gè)一個(gè)的單詞或者標(biāo)記,可用StringTokenizer來(lái)解決
String 類的 split 方法,其實(shí)在字符串分割時(shí)可以調(diào)用 StringTokenizer,實(shí)例化一個(gè) StringTokenizer 的對(duì)象,通過(guò) hasMoreTokens() 與 nextToken()進(jìn)行判斷并打印分割后的子字符串。
public class Test { public static void main(String[] args) { String a = "1-1-1-1"; StringTokenizer result = new StringTokenizer(a,"-"); // 實(shí)例化對(duì)象,并指向以 - 對(duì) a 進(jìn)行分割 while(result.hasMoreTokens()){ // 對(duì) result 遍歷并打印子字符串; System.out.println(result.nextToken()); } } }
1
1
1
1
擴(kuò)展:JAVA 截取字符串的三種方法 subString,StringUtils,split
主要有以下幾種方法:
1、通過(guò)subString()方法來(lái)進(jìn)行字符串截取(最常用)
2、通過(guò)StringUtils提供的方法3
3、split()+正則表達(dá)式來(lái)進(jìn)行截取
1、通過(guò)subString()方法來(lái)進(jìn)行字符串截取,返回字符串中的子字符串,在java中有兩種用法
第一種,傳遞一個(gè)參數(shù):
public String substring(int beginIndex) //該子字符串從指定索引處的字符開(kāi)始,直到此字符串末尾。public String substring(int beginIndex) //該子字符串從指定索引處的字符開(kāi)始,直到此字符串末尾。
第二種,傳遞兩個(gè)參數(shù):
public String substring(int beginIndex, int endIndex) //從指定的 beginIndex 處開(kāi)始,直到索引 endIndex - 1 處的字符。因此,該子字符串的長(zhǎng)度為 endIndex-beginIndex。
//參數(shù)說(shuō)明:beginIndex -- 起始索引(包括)、endIndex -- 結(jié)束索引(不包括)。
示例代碼:
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) ); }
運(yùn)行結(jié)果
返回值,從第4位截取到字符串末尾 : o wrold
返回值,從第4位截取到第10位 : o wrol
2、通過(guò)StringUtils提供的方法
//與第一種方法效果一樣 StringUtils.substring("hello world", 4); // 返回值,從第4位截取到字符串末尾 : o wrold StringUtils.substring("hello world", 4, 10); // 返回值,從第4位截取到第10位 : o wrol //截取某個(gè)字符串之前的字符 StringUtils.substringBefore("hello world", "l"); //結(jié)果是:he 這里是以第一個(gè)”l”,為標(biāo)準(zhǔn)。 StringUtils.substringBeforeLast("hello world", "l"); //結(jié)果為:hello wor 這里以最后一個(gè)“l(fā)”為準(zhǔn)。 //截取某個(gè)字符串之后的字符 StringUtils.substringAfter("hello world", "l"); //結(jié)果是:lo world 這里是以第一個(gè)”l”,為標(biāo)準(zhǔn)。 StringUtils.substringAfterLast("hello world", "l"); //結(jié)果為:d 這里以最后一個(gè)“l(fā)”為準(zhǔn)。 //截取兩個(gè)字符串之間隔的字符 StringUtils.substringBetween("hello world", "o"); //結(jié)果是: w 兩個(gè)o之間的字符串。 StringUtils.substringBetween("hello world", "l", "r"); //結(jié)果是: lo wo 第一個(gè)字符“l(fā)”與第一個(gè)字符“r”之間的字符串 StringUtils.substringsBetween("hello world", "l", "r"); //結(jié)果是:數(shù)組 [lo wo] 第一個(gè)字符“l(fā)”與第一個(gè)字符“r”之間的字符串,以數(shù)組形式返回。
用StringUtils需要導(dǎo)入common-lang3包
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency>
3、split()+正則表達(dá)式來(lái)進(jìn)行截取
將字符串按照分割符截取,以數(shù)組形式返回
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()); }
運(yùn)行結(jié)果
hello
name
12345
6789
到此這篇關(guān)于Java中實(shí)現(xiàn)String字符串分割的3種方法的文章就介紹到這了,更多相關(guān)java string字符串分割內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- java判斷字符串String是否為空問(wèn)題淺析
- java實(shí)現(xiàn)字符串轉(zhuǎn)String數(shù)組的方法示例
- Java讀取String分行字符串的方法
- 詳解Java String字符串獲取每一個(gè)字符及常用方法
- Java String字符串內(nèi)容實(shí)現(xiàn)添加雙引號(hào)
- Java中實(shí)現(xiàn)String字符串用逗號(hào)隔開(kāi)
- java逗號(hào)分隔String字符串及數(shù)組、集合相互轉(zhuǎn)換
- 利用Java截取String字符串的幾種常用方法
- Java字符串String相關(guān)類常用方法詳解
相關(guān)文章
Java中隨機(jī)數(shù)的產(chǎn)生方式與原理詳解
這篇文章主要介紹了Java中隨機(jī)數(shù)的產(chǎn)生方式與原理詳解的相關(guān)資料,需要的朋友可以參考下2016-11-11SpringBoot啟動(dòng)自動(dòng)終止也不報(bào)錯(cuò)的原因及解決
這篇文章主要介紹了SpringBoot啟動(dòng)自動(dòng)終止也不報(bào)錯(cuò)的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Spring Boot Maven Plugin打包異常解決方案
這篇文章主要介紹了Spring Boot Maven Plugin打包異常解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11springboot使用JdbcTemplate完成對(duì)數(shù)據(jù)庫(kù)的增刪改查功能
這篇文章主要介紹了springboot使用JdbcTemplate完成對(duì)數(shù)據(jù)庫(kù)的增刪改查功能,需要的朋友可以參考下2017-12-12Spring Cache優(yōu)化數(shù)據(jù)庫(kù)訪問(wèn)的項(xiàng)目實(shí)踐
本文主要介紹了Spring Cache優(yōu)化數(shù)據(jù)庫(kù)訪問(wèn)的項(xiàng)目實(shí)踐,將創(chuàng)建一個(gè)簡(jiǎn)單的圖書管理應(yīng)用作為示例,并演示如何通過(guò)緩存減少對(duì)數(shù)據(jù)庫(kù)的頻繁查詢,感興趣的可以了解一下2024-01-01淺談利用Spring的AbstractRoutingDataSource解決多數(shù)據(jù)源的問(wèn)題
本篇文章主要介紹了淺談利用Spring的AbstractRoutingDataSource解決多數(shù)據(jù)源的問(wèn)題,具有一定的參考價(jià)值,有需要的可以了解一下2017-08-08SparkSQL中的JSON內(nèi)置函數(shù)全解析
你是否曾經(jīng)為處理JSON數(shù)據(jù)而頭疼?SparkSQL為我們提供了強(qiáng)大的內(nèi)置JSON函數(shù),讓JSON處理變得輕而易舉,本文將帶你深入了解這些函數(shù),感興趣的朋友一起看看吧2024-08-08