java中split()方法以及常見(jiàn)算法經(jīng)典案例
一、split()
1.定義
Java中split()方法可以根據(jù)指定的正則表達(dá)式將字符串分割成多個(gè)子字符串,并將結(jié)果以字符串?dāng)?shù)組的方式返回。
2.分割符種類
分割符可以是數(shù)字,任意字符,字符串,符號(hào)等。
3.重載的方法以及含義
String[] split(String regex) | 返回被regex分割后的字符串?dāng)?shù)組 |
Stirng[] split(Stirng regex,int limit) | 返回被regex分割后的,數(shù)組長(zhǎng)度為limit的字符串?dāng)?shù)組 |
4.注意事項(xiàng)
a.空字符串
如果是" ",空格字符串,那輸出結(jié)果將會(huì)以空格分割符分割;
如果是""空字符串,輸出結(jié)果將會(huì)是單個(gè)字符的形式輸出為字符串?dāng)?shù)組,長(zhǎng)度為str.length();
public class SplitTest { public static void main(String []args) { String str="abcdef ghi"; String[] list=str.split(" "); for (String s:list ) { System.out.println(s); } String[] list1=str.split(""); for (String s:list1 ) { System.out.println(s); } } }
運(yùn)行結(jié)果:
b.連續(xù)分隔符
如果字符串中有連續(xù)的分割字符,那么結(jié)果數(shù)組中將出現(xiàn)空字符串。(注意區(qū)分空字符串,空格字符串);
public class SplitTest { public static void main(String []args) { String str="abcdef,,ghi"; String[] list=str.split(","); for (String s:list ) { System.out.println(s); } } }
運(yùn)行結(jié)果:
c.轉(zhuǎn)義字符
在正則表達(dá)式中,有些字符具有特殊含義,例如:
'.', '*', '?', '^', '$', '(', '[', '{', '|', '\', '/'等。
如果需要這些字符作為普通字符進(jìn)行分割,則需要進(jìn)行轉(zhuǎn)義;
public class SplitTest { public static void main(String []args) { String str="abc.def.ghi"; String[] list=str.split("\\."); for (String s:list ) { System.out.println(s); } } }
運(yùn)行結(jié)果:
5.代碼演示
public class SplitTest { public static void main(String []args) { String str="2024-3-6"; //雙引號(hào)而非單引號(hào),參數(shù)是字符串類型,不能大意認(rèn)為"-"是單個(gè)字符。 String[] list=str.split("-"); for(String s:list){ System.out.println(s); } //有限字符串?dāng)?shù)組長(zhǎng)度的重載split(); String[] list1=str.split("-",4);//雖然為4,但是最多分割兩次 for(String s:list1){ System.out.println(s); } //多個(gè)分割字符的情況 String str2="abcd.efg|hijk.mno"; String[] list2=str2.split("\\.|\\|"); for (String s:list2 ) { System.out.println(s); } } }
運(yùn)行結(jié)果:
二、經(jīng)典例題
1.問(wèn)題描述
用戶輸入“2024-8-9”,程序返回"2024-08-09".
2.思路
1.先用split()方法將字符串分割為字符串?dāng)?shù)組;
2.遍歷數(shù)組,用stringbuilder存儲(chǔ),當(dāng)存儲(chǔ)到下一個(gè)字符時(shí)進(jìn)行判斷,如果字符長(zhǎng)度為1,則拼接0,然后再拼接"-",如果不為一,則直接拼接"-".
import java.util.Scanner; public class SplitTest { public static void main(String []args) { Scanner input=new Scanner(System.in); //創(chuàng)建stringbuilder字符串來(lái)存儲(chǔ)動(dòng)態(tài)結(jié)果; StringBuilder stringBuilder=new StringBuilder(); String str=input.next(); //使用split()方法分割字符串 String[] list=str.split("-"); for (int i = 0; i <list.length ; i++) { //如果長(zhǎng)度為1,則拼接字符串; if (list[i].length()==1){ stringBuilder.append("0"); stringBuilder.append(list[i]); }else { stringBuilder.append(list[i]); } //除了最后一個(gè)字符串,拼接"-"; if(i!=list.length-1){ stringBuilder.append("-"); } } //打印結(jié)果 System.out.println(stringBuilder); } }
3.運(yùn)行結(jié)果
總結(jié)
到此這篇關(guān)于java中split()方法以及常見(jiàn)算法的文章就介紹到這了,更多相關(guān)java中split()方法常見(jiàn)算法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot集成springfox-swagger2構(gòu)建restful API的方法教程
這篇文章主要給大家介紹了關(guān)于Spring Boot集成springfox-swagger2構(gòu)建restful API的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。2017-06-06通過(guò)Java設(shè)置Word頁(yè)面背景色過(guò)程詳解
這篇文章主要介紹了通過(guò)Java設(shè)置Word頁(yè)面背景色過(guò)程詳解,Word中可以針對(duì)不同文檔排版設(shè)計(jì)要求來(lái)設(shè)置背景設(shè)置顏色。常見(jiàn)的可設(shè)置單一顏色、漸變色或加載圖片來(lái)設(shè)置成背景。下面通過(guò)Java來(lái)設(shè)置以上3種Word頁(yè)面背景色,需要的朋友可以參考下2019-07-07Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(40)
下面小編就為大家?guī)?lái)一篇Java基礎(chǔ)的幾道練習(xí)題(分享)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,希望可以幫到你2021-07-07Android仿微信實(shí)現(xiàn)左滑顯示刪除按鈕功能
這篇文章主要為大家詳細(xì)介紹了java仿微信實(shí)現(xiàn)左滑顯示刪除按鈕功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10Java中靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)和普通代碼塊的區(qū)別
在Java中,靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)、普通代碼塊的執(zhí)行順序是一個(gè)筆試的考點(diǎn),通過(guò)這篇文章希望大家能徹底了解它們之間的執(zhí)行順序,需要的朋友可以參考下2023-05-05Java操作Mongodb數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)的增刪查改功能示例
這篇文章主要介紹了Java操作Mongodb數(shù)據(jù)庫(kù)實(shí)現(xiàn)數(shù)據(jù)的增刪查改功能,結(jié)合完整實(shí)例形式分析了java針對(duì)MongoDB數(shù)據(jù)庫(kù)的連接、增刪改查等相關(guān)操作技巧,需要的朋友可以參考下2017-08-08Springboot?實(shí)現(xiàn)Server-Sent?Events的項(xiàng)目實(shí)踐
本文介紹了在Spring?Boot中實(shí)現(xiàn)Server-Sent?Events(SSE),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12