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