java分割字符串多種方法(附例子)
1、String#split
可以根據(jù)給定的分隔符或正則表達(dá)式將一個(gè)字符串分割成多個(gè)部分
// 使用正則表達(dá)式 "(?<=\\G.{" + n + "})"來(lái)分割字符串,其中表達(dá)式中的 n 表示字符的長(zhǎng)度。
public static List<String> usingSplitMethod(String text, int n) {
String[] results = text.split("(?<=\\G.{" + n + "})");
return Arrays.asList(results);
}2、String#substring
一般情況我們都是用于截取字符串使用的,這里我們也是可以用來(lái)處理字符串的分割,只要循環(huán)就行
public static List<String> usingSubstringMethod(String text, int n) {
List<String> results = new ArrayList<>();
int length = text.length();
for (int i = 0; i < length; i += n) {
results.add(text.substring(i, Math.min(length, i + n)));
}
return results;
}3、Pattern類
Pattern 類通常來(lái)說(shuō),我們是用于處理正則表達(dá)式,做一些match使用,正如第一種 String#split 方法所見(jiàn),正則表達(dá)式也可以用于分割字符串
// 我們使用 .{1,n}構(gòu)建了一個(gè) Pattern 對(duì)象,它能個(gè)匹配 1 到 n 個(gè)字符
public static List<String> usingPattern(String text, int n) {
return Pattern.compile(".{1," + n + "}")
.matcher(text)
.results()
.map(MatchResult::group)
.collect(Collectors.toList());
}4、Guava類
以上三種方法是Jdk 中的 API,Guava 是第三方依賴包所提供的
Guava 通過(guò) Splitter 類可以很簡(jiǎn)單的針對(duì)我們的這個(gè)使用場(chǎng)景,進(jìn)行字符串分割。這個(gè) fixedLength() 方法為后續(xù)的分割提供了固定的分割長(zhǎng)度。
public static List<String> usingGuava(String text, int n) {
Iterable<String> parts = Splitter.fixedLength(n).split(text);
return ImmutableList.copyOf(parts);
}附:Java 字符串分割和拼接用逗號(hào)分開(kāi)
String str="1278,1289,1286";
String [] strArr=str.split(",");
String urlRequest="";
for(int i=0;i<strArr.length;i++) {
String url="http://localhost:8080/demo/test?fileID=canshu";
System.out.println("輸出結(jié)果"+strArr[i]);
url=url.replace("canshu", strArr[i]);
System.out.println(url);
urlRequest+=url+",";
}
System.out.println(urlRequest);總結(jié)
到此這篇關(guān)于java分割字符串多種方法的文章就介紹到這了,更多相關(guān)java分割字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mybatis-Plus讀寫(xiě)Mysql的Json字段的操作代碼
這篇文章主要介紹了Mybatis-Plus讀寫(xiě)Mysql的Json字段的操作代碼,文中通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04
詳解Java對(duì)象結(jié)構(gòu)與對(duì)象鎖的升級(jí)
這篇文章主要為大家詳細(xì)介紹了Java對(duì)象結(jié)構(gòu)與對(duì)象鎖的升級(jí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
Java 中的Function.identity()實(shí)現(xiàn)原理解析
Function.identity()是Java 8 引入的一個(gè)靜態(tài)方法,屬于 java.util.function.Function 函數(shù)式接口,這篇文章主要介紹了Java 中的Function.identity()實(shí)現(xiàn)原理,需要的朋友可以參考下2025-08-08
Java Swing JCheckBox復(fù)選框的實(shí)現(xiàn)方法
這篇文章主要介紹了Java Swing JCheckBox復(fù)選框的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
idea2023創(chuàng)建JavaWeb教程之右鍵沒(méi)有Servlet的問(wèn)題解決
最近在寫(xiě)一個(gè)javaweb項(xiàng)目,但是在IDEA中創(chuàng)建好項(xiàng)目后,在搭建結(jié)構(gòu)的時(shí)候創(chuàng)建servlet文件去沒(méi)有選項(xiàng),所以這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于idea2023創(chuàng)建JavaWeb教程之右鍵沒(méi)有Servlet問(wèn)題的解決方法,需要的朋友可以參考下2023-10-10
Spring Boot 配置和使用多線程池的實(shí)現(xiàn)
這篇文章主要介紹了Spring Boot 配置和使用多線程池的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06

