java中split()方法以及常見算法經(jīng)典案例
一、split()
1.定義
Java中split()方法可以根據(jù)指定的正則表達(dá)式將字符串分割成多個(gè)子字符串,并將結(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.注意事項(xiàng)
a.空字符串
如果是" ",空格字符串,那輸出結(jié)果將會以空格分割符分割;
如果是""空字符串,輸出結(jié)果將會是單個(gè)字符的形式輸出為字符串?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);
}
}
}運(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";
//雙引號而非單引號,參數(shù)是字符串類型,不能大意認(rèn)為"-"是單個(gè)字符。
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);
}
//多個(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.問題描述
用戶輸入“2024-8-9”,程序返回"2024-08-09".
2.思路
1.先用split()方法將字符串分割為字符串?dāng)?shù)組;
2.遍歷數(shù)組,用stringbuilder存儲,當(dāng)存儲到下一個(gè)字符時(shí)進(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]);
}
//除了最后一個(gè)字符串,拼接"-";
if(i!=list.length-1){
stringBuilder.append("-");
}
}
//打印結(jié)果
System.out.println(stringBuilder);
}
}3.運(yùn)行結(jié)果

總結(jié)
到此這篇關(guān)于java中split()方法以及常見算法的文章就介紹到這了,更多相關(guān)java中split()方法常見算法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android?Studio中創(chuàng)建java工程的完整步驟
Android?Studio創(chuàng)建java工程是非常麻煩的,因?yàn)锳ndroid?Studio沒有提供直接創(chuàng)建java工程的方法,下面這篇文章主要給大家介紹了關(guān)于Android?Studio中創(chuàng)建java工程的完整步驟,需要的朋友可以參考下2024-01-01
Mybatis Plus 字段為空值時(shí)執(zhí)行更新方法未更新解決方案
這篇文章主要介紹了Mybatis Plus 字段為空值時(shí)執(zhí)行更新方法未更新解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
java面試常見問題---ConcurrentHashMap
ConcurrentHashMap是由Segment數(shù)組結(jié)構(gòu)和HashEntry數(shù)組結(jié)構(gòu)組成。Segment的結(jié)構(gòu)和HashMap類似,是一種數(shù)組和鏈表結(jié)構(gòu),今天給大家普及java面試常見問題---ConcurrentHashMap知識,一起看看吧2021-06-06
spring學(xué)習(xí)之創(chuàng)建項(xiàng)目 Hello Spring實(shí)例代碼
這篇文章主要介紹了spring學(xué)習(xí)之創(chuàng)建項(xiàng)目 Hello Spring實(shí)例代碼,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01

