[toc]文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-520394.html
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類(lèi)
Pattern 類(lèi)通常來(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類(lèi)
以上三種方法是Jdk 中的 API,Guava 是第三方依賴(lài)包所提供的
Guava 通過(guò) Splitter 類(lèi)可以很簡(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);
}
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-520394.html
到了這里,關(guān)于java 分割字符串(多種方法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!