Java 切割字符串的幾種方式集合_第1頁
Java 切割字符串的幾種方式集合_第2頁
Java 切割字符串的幾種方式集合_第3頁
Java 切割字符串的幾種方式集合_第4頁
Java 切割字符串的幾種方式集合_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第Java切割字符串的幾種方式集合目錄Java切割字符串的幾種方式1、StringTokenizer切割2、..split("*")分割3、調(diào)用String自己的apisubString()java優(yōu)雅的切割字符串切割字符串使用方法

Java切割字符串的幾種方式

//以data為案例參數(shù)。

Stringdata="2025-01-0821:55136\n2025-01-0822:0086\n2025-01-0822:04136\n2025-01-0822:0986\n2025-01-0822:12136\n2025-01-1410:4986\n";

已下排名按效率高低,如果有疑問自己可以設(shè)置時(shí)間戳,自己測試吧。

1、StringTokenizer切割

是java.util中的一個(gè)類,包含的api有:

其中,countTokens為length;nextToken可以獲取它的下一個(gè)字符串,其中delim為分隔符。

2、..split("*")分割

最方便,運(yùn)用最多的,不解釋。

String[]split=data.split("\n");

if(split!=nullsplit.length!=0){

for(inti=0;isplit.length-1;i++){

String[]split1=split[i].split(":");

}

3、調(diào)用String自己的apisubString()

運(yùn)用2的代碼塊

String[]split=data.split("\n");

if(split!=nullsplit.length!=0){

for(inti=0;isplit.length-1;i++){

System.out.println(split[i]);

Stringtime=split[i].substring(0,16);//前半部分16為index

System.out.println(time);

Stringnum=split[i].substring(17);//剩余部分index+2;

System.out.println(num);

}

輸出結(jié)果:

2025-01-0821:55136

2025-01-0821:55

136

2025-01-0822:0086

2025-01-0822:00

86

2025-01-0822:04136

2025-01-0822:04

136

2025-01-0822:0986

2025-01-0822:09

86

2025-01-0822:12136

2025-01-0822:12

136

其中上面的split[i].substring(0,15);15是我字符串我這邊功能需要寫死了的,你可以通過indexOf(intch)獲取位置。

正則獲取時(shí)間,然后.replaceAll(Stringregex,Stringreplacement)那時(shí)間用”“代替,剩下的字符串就是時(shí)間以外的字符串了。

java優(yōu)雅的切割字符串

切割字符串

分隔字符串是java中常用的操作,String的split方法可以進(jìn)行字符串切割操作,然而日常使用卻僅僅限于str.split("-"),其中“-”為分隔符。其實(shí)split方法很強(qiáng)大,有更優(yōu)雅的方式去切割字符串

使用方法

publicString[]split(Stringregex)

其中regex代表正則表達(dá)式分隔符,我們平時(shí)使用單個(gè)字符作為分隔符,其實(shí)可以看做是特殊的正則表達(dá)式,特殊之處在于這種表達(dá)式在匹配自身,如"-"只匹配"-",示例如下:

Stringstring=;

String[]parts=string.split("-");

Stringpart1=parts[0];//86

Stringpart2=parts[1];//p>

split還有另一種用法

publicString[]split(Stringregex,intlimit)

regex指的是正則表達(dá)式分隔符,limit值的是分隔的份數(shù),如:

Stringstring="004-556-42";

String[]parts=string.split("-",2);//限定分割兩份

Stringpart1=parts[0];//004

Stringpart2=parts[1];//556-42

在某些場景下,我們可能想要在結(jié)果中保留分隔符,這也是可以做到的,設(shè)置分隔符與分割后的左側(cè)結(jié)果相連

Stringstring=;

String[]parts=string.split("(=-)");

Stringpart1=parts[0];//86-

Stringpart2=parts[1];//p>

設(shè)置分隔符與分割后右側(cè)的結(jié)果相連:

Stringstring=;

String[]parts=string.split("(=-)");

Stringpart1=parts[0];//86-

Stringpart2=parts[1];//p>

所以說要妙用正則表達(dá)式,代碼示例:

//\d代表數(shù)字,+代表出現(xiàn)一次或多次。所以(\\d+)-(\\d+)匹配用"-"相連的兩個(gè)數(shù)字串

//Pattern對(duì)象是正則表達(dá)式的編譯表示

privatestaticPatterntwopart=Ppile("(\\d+)-(\\d+)");

publicstaticvoidcheckString(Strings)

//Matcher對(duì)象對(duì)輸入字符串進(jìn)行解釋和匹配操作

Matcherm=twopart.matcher(s);

if(m.matches()){

//m.group(1)和m.group(2)存儲(chǔ)分割后的子串

System.out.println(s+"matches;firstpartis"+m.group(1)+

",secondpartis"+m.group(2)+".");

}else{

System.out.println(s+"doesnotmatch.");

publicstaticvoidmain(String[]args){

checkString("123-4567");//匹配

checkString("s-tar");//字母序列,不匹配

checkString("123-");//"-"右側(cè)的數(shù)字串為空,不匹配

checkString("-4567");//"-"左側(cè)的數(shù)字串為空,不匹配

checkString("123-4567-890");//存在兩個(gè)"-",不匹配

}

運(yùn)行結(jié)果:

123-4567matches;firstpartis12

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論