java 字符串分割的三種方法(總結(jié))
最近在項(xiàng)目中遇到一個(gè)小問(wèn)題,一個(gè)字符串分割成一個(gè)數(shù)組,類似String str=”aaa,bbb,ccc”; 然后以”,”為分割符,將其分割成一個(gè)數(shù)組,用什么方法去實(shí)現(xiàn)呢?
第一種方法:
可能一下子就會(huì)想到使用split()方法,用split()方法實(shí)現(xiàn)是最方便的,但是它的效率比較低
第二種方法:
使用效率較高的StringTokenizer類分割字符串,StringTokenizer類是JDK中提供的專門(mén)用來(lái)處理字符串分割子串的工具類。它的構(gòu)造函數(shù)如下:
public StringTokenizer(String str,String delim)
str是要分割處理的字符串,delim是分割符號(hào),當(dāng)一個(gè)StringTokenizer對(duì)象生成后,通過(guò)它的nextToken()方法便可以得到下一個(gè)分割的字符串,再通過(guò)hasMoreTokens()方法可以知道是否有更多的子字符串需要處理。這種方法的效率比第一種高。
第三種方法:
使用String的兩個(gè)方法—indexOf()和subString(),subString()是采用了時(shí)間換取空間技術(shù),因此它的執(zhí)行效率相對(duì)會(huì)很快,只要處理好內(nèi)存溢出問(wèn)題,但可大膽使用。而indexOf()函數(shù)是一個(gè)執(zhí)行速度非常快的方法,
原型如下:
public int indexOf(int ch) 它返回指定字符在String對(duì)象的位置。如下:
舉例:
"ab&&2"以&分割成"ab" "2"
String tmp = "ab&&2";
String splitStr = null;
int j = tmp.indexOf("&"); // 找分隔符的位置
splitStr = tmp.substring(0, j); // 找到分隔符,截取子字符串
tmp = tmp.substring(j + 2); // 剩下需要處理的字符串
System.out.println(splitStr);
System.out.println(tmp);
ab
2
以上這篇java 字符串分割的三種方法(總結(jié))就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)指定線程執(zhí)行順序的三種方式示例
這篇文章主要介紹了Java實(shí)現(xiàn)指定線程執(zhí)行順序的三種方式,包括通過(guò)共享對(duì)象鎖加上可見(jiàn)變量,通過(guò)主線程Join()以及通過(guò)線程執(zhí)行時(shí)Join()等三種實(shí)現(xiàn)方法,需要的朋友可以參考下2019-01-01
如何解決Could not transfer artifact org.spri
在Maven更新過(guò)程中遇到“Could not transfer artifact org.springframework.boot”錯(cuò)誤通常是由于網(wǎng)絡(luò)問(wèn)題,解決方法是在Maven的設(shè)置中忽略HTTPS,添加特定語(yǔ)句后,可以正常下載依賴,但下載速度可能較慢,這是一種常見(jiàn)的解決方案,希望對(duì)遇到相同問(wèn)題的人有所幫助2024-09-09
Java面試題沖刺第十三天--數(shù)據(jù)庫(kù)(3)
這篇文章主要為大家分享了最有價(jià)值的三道數(shù)據(jù)庫(kù)面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,感興趣的小伙伴們可以參考一下2021-07-07
Springboot項(xiàng)目啟動(dòng)不加載resources目錄下的文件問(wèn)題
這篇文章主要介紹了Springboot項(xiàng)目啟動(dòng)不加載resources目錄下的文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
如何實(shí)現(xiàn)廣告彈窗觸達(dá)頻率的控制?
這篇文章主要介紹了如何實(shí)現(xiàn)廣告彈窗觸達(dá)頻率的控制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Springboot實(shí)現(xiàn)Excel批量導(dǎo)入數(shù)據(jù)并保存到本地
這篇文章主要為大家詳細(xì)介紹了Springboot實(shí)現(xiàn)Excel批量導(dǎo)入數(shù)據(jù)并將文件保存到本地效果的方法,文中的示例代講解詳細(xì),需要的可以參考一下2022-09-09
SpringBoot對(duì)PDF進(jìn)行模板內(nèi)容填充與電子簽名合并詳解
這篇文章主要為大家詳細(xì)介紹了SpringBoot對(duì)PDF進(jìn)行模板內(nèi)容填充與電子簽名合并的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考下2023-12-12
@DS注解的使用,動(dòng)態(tài)數(shù)據(jù)源,事務(wù)詳解
在項(xiàng)目中使用多數(shù)據(jù)源時(shí),可以借助苞米豆的dynamic-datasource-spring-boot-starter進(jìn)行配置,首先需引入相應(yīng)的jar包,并在application.yml中設(shè)置主從數(shù)據(jù)源,其中一般選擇master作為默認(rèn)數(shù)據(jù)源,在實(shí)現(xiàn)類中通過(guò)@DS注解指定數(shù)據(jù)源2024-09-09

