精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java 截取字符串的幾種操作

開(kāi)發(fā) 前端
在這篇文章中,我們學(xué)習(xí)了在Java中把一個(gè) String 截?cái)酁樘囟〝?shù)量的字符的各種方法。我們看了一些使用JDK來(lái)做這件事的方法。然后,我們使用一些第三方庫(kù)來(lái)截?cái)?String 。

大家好,我是指北君。

在本文中,我們將學(xué)習(xí)在Java中把一個(gè)String截?cái)嗟剿璧淖址麛?shù)的集中方法。

首先,我們將探索使用JDK本身來(lái)實(shí)現(xiàn)這一目標(biāo)的方法。然后,我們將研究如何使用一些流行的第三方庫(kù)來(lái)實(shí)現(xiàn)這一目標(biāo)。

使用JDK截?cái)嘁粋€(gè)字符串

Java提供了許多方便的方法來(lái)截?cái)嘁粋€(gè) String 。讓我們來(lái)看看。

使用 String 的 substring() 方法

String 類(lèi)有一個(gè)方便的方法,叫做 substring? ,正如其名稱(chēng)所示 , substring()? 返回指定索引之間的 String 部分。

讓我們來(lái)看看它的運(yùn)行情況。

static String usingSubstringMethod(String text, int length) {
if (text.length() <= length) {
return text;
} else {
return text.substring(0, length);
}
}

在上面的例子中,如果指定的 length 大于 text 的長(zhǎng)度,我們返回 text 本身。這是因?yàn)? 傳遞給 substring()? 的 length 大于 String 的字符數(shù)會(huì)導(dǎo)致 IndexOutOfBoundsException   。

否則,我們將返回從索引0開(kāi)始并延伸到--但不包括--索引 length 的字符的子串。

讓我們用一個(gè)測(cè)試案例來(lái)確認(rèn)這一點(diǎn)。

static final String TEXT = "Welcome to  javanorth.cn";

@Test
public void givenStringAndLength_whenUsingSubstringMethod_thenTrim() {

assertEquals(TrimStringOnLength.usingSubstringMethod(TEXT, 10), "Welcome to");
}

正如我們所看到的,  的起始索引是包容的,結(jié)束索引是排他的  。因此, 索引 length 處的字符將不包括在返回的子串中。

使用 String 的 split() 方法

另一種截?cái)?String 的方法是使用 split() 方法,它使用正則表達(dá)式將 String 分割成若干部分。

這里我們將使用一個(gè)叫做 positive lookbehind 的正則表達(dá)式特征來(lái)匹配從 String 開(kāi)始的指定數(shù)量的字符。

static String usingSplitMethod(String text, int length) {

String[] results = text.split("(?<=\\G.{" + length + "})");

return results[0];
}

results 的第一個(gè)元素將是我們截?cái)嗟?String ,如果 length 長(zhǎng)于 text ,則是原始的 String 。

讓我們測(cè)試一下我們的方法。

@Test
public void givenStringAndLength_whenUsingSplitMethod_thenTrim() {

assertEquals(TrimStringOnLength.usingSplitMethod(TEXT, 13), "Welcome to ba");
}

使用 Pattern 類(lèi)

同樣,  我們可以使用 Pattern 類(lèi)來(lái)編譯一個(gè)正則表達(dá)式,該表達(dá)式可以匹配 String 的開(kāi)頭,直至指定的字符數(shù)  。

例如,讓我們使用 {1," + length + "}. 這個(gè)正則表達(dá)式至少匹配一個(gè),最多匹配 length 個(gè)字符。

static String usingPattern(String text, int length) {

Optional<String> result = Pattern.compile(".{1," + length + "}")
.matcher(text)
.results()
.map(MatchResult::group)
.findFirst();

return result.isPresent() ? result.get() : EMPTY;

}

正如我們?cè)谏厦婵吹降模趯⑽覀兊恼齽t表達(dá)式編譯成 Pattern 后,我們可以使用 Pattern的 matcher() 方法來(lái)根據(jù)該正則表達(dá)式解釋我們的 String 。然后我們就可以將結(jié)果分組,并返回第一個(gè)結(jié)果,也就是我們截?cái)嗟?String 。

現(xiàn)在讓我們添加一個(gè)測(cè)試案例來(lái)驗(yàn)證我們的代碼是否如預(yù)期那樣工作。

@Test
public void givenStringAndLength_whenUsingPattern_thenTrim() {

assertEquals(TrimStringOnLength.usingPattern(TEXT, 19), "Welcome to javanorth");
}

使用 CharSequence 的 codePoints() 方法

Java 9提供了一個(gè) codePoints() 方法來(lái)將一個(gè) String 轉(zhuǎn)換為一個(gè)碼點(diǎn)值流。

讓我們看看如何使用這個(gè)方法與 Stream API相結(jié)合來(lái)截?cái)嘁粋€(gè)字符串。

static String usingCodePointsMethod(String text, int length) {

return text.codePoints()
.limit(length)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
}

在這里,我們使用 limit() 方法來(lái)限制 Stream 的長(zhǎng)度 。然后我們使用 StringBuilder 來(lái)建立我們的截?cái)嘧址?/p>

接下來(lái),讓我們驗(yàn)證一下我們的方法是否有效。

@Test
public void givenStringAndLength_whenUsingCodePointsMethod_thenTrim() {
assertEquals(TrimStringOnLength.usingCodePointsMethod(TEXT, 6), "Welcom");
}

Apache Commons 庫(kù)

Apache Commons Lang 庫(kù)包括一個(gè) StringUtils 類(lèi),用于操作 String。

首先,讓我們把Apache Commons dependency添加到我們的 pom.xml 。

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>

使用 StringUtils的left() 方法

StringUtils 有一個(gè)有用的 靜態(tài) 方法叫 left() 。  StringUtils.left() 以一種安全的方式返回 String 最左邊的指定字符數(shù): 。

static String usingLeftMethod(String text, int length) {

return StringUtils.left(text, length);
}

使用 StringUtils 的 truncate() 方法

另外,我們可以使用 StringUtils.truncate() 來(lái)達(dá)到同樣的目的。

public static String usingTruncateMethod(String text, int length) {
return StringUtils.truncate(text, length);
}

Guava庫(kù)

除了使用核心Java方法和Apache Commons庫(kù)來(lái)截?cái)嘁粋€(gè) String 之外,我們還可以使用 Guava。讓我們首先把Guava的 dependency 添加到我們的 pom.xml 文件中。

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.0.1-jre</version>
</dependency>

現(xiàn)在我們可以使用Guava的 Splitter 類(lèi)來(lái)截?cái)辔覀兊?String 。

static String usingSplitter(String text, int length) {
Iterable<String> parts = Splitter.fixedLength(length)
.split(text);
return parts.iterator()
.next();
}

我們使用 Splitter.fixedLength() 將我們的 String 分割成多個(gè)給定長(zhǎng)度的片段。然后,我們返回結(jié)果中的第一個(gè)元素。

總結(jié)

在這篇文章中,我們學(xué)習(xí)了在Java中把一個(gè) String 截?cái)酁樘囟〝?shù)量的字符的各種方法。我們看了一些使用JDK來(lái)做這件事的方法。然后,我們使用一些第三方庫(kù)來(lái)截?cái)?String 。

責(zé)任編輯:武曉燕 來(lái)源: Java技術(shù)指北
相關(guān)推薦

2011-12-20 10:28:01

Java字符串

2009-06-30 14:16:37

截取字符串

2009-09-01 17:58:55

C#截取字符串

2010-11-26 11:34:32

MySQL截取字符串函

2009-09-01 17:41:53

C#截取字符串函數(shù)

2009-09-01 17:50:23

C#截取字符串

2021-03-08 08:23:24

Java字符串截取

2022-03-16 22:21:53

substringsubstrslice

2010-04-27 12:26:21

Unix字符串

2023-10-08 08:37:28

SQL字符串數(shù)據(jù)

2010-09-13 15:06:40

sql server字

2010-11-26 11:20:31

MySQL字符串處理函

2009-08-06 17:24:08

C#字符串

2021-01-09 23:11:33

SQL數(shù)據(jù)庫(kù)字母

2009-11-18 18:02:19

PHP字符串截取

2020-10-16 18:35:53

JavaScript字符串正則表達(dá)式

2009-11-27 10:24:25

PHP字符串操作

2021-09-10 08:18:31

Go語(yǔ)言字符串

2010-09-06 17:30:46

SQL函數(shù)

2009-07-15 17:20:45

Jython字符串
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美系列精品| 韩国三级在线观看久| 亚洲在线久久| 精品美女在线观看| av黄色在线网站| 91在线品视觉盛宴免费| 国产成人在线色| 91成人性视频| 国产精品18在线| 精品视频在线播放一区二区三区| 亚洲一二三四区| 欧美日韩国产精品一卡| 97精品久久人人爽人人爽| 黄色欧美日韩| 中文字幕一区二区精品| xxxxwww一片| 三上悠亚一区二区| 一区av在线播放| 欧美日韩精品久久| www.97超碰| 日韩电影网1区2区| 欧美激情欧美狂野欧美精品| 亚洲成人黄色av| 国产精品jk白丝蜜臀av小说| 欧美写真视频网站| www.射射射| aaa在线观看| av日韩在线网站| 91视频8mav| 中文字幕永久在线| 亚洲激精日韩激精欧美精品| 日韩有码在线播放| 少妇久久久久久久久久| 97精品久久| 欧美浪妇xxxx高跟鞋交| 日韩一级在线免费观看| а√在线中文在线新版| 亚洲激情综合网| 亚洲欧洲日本国产| yw193.com尤物在线| xf在线a精品一区二区视频网站| 亚洲xxx视频| 性色av一区二区三区四区| a91a精品视频在线观看| 色综合久久88| 五月天婷婷色综合| 91精品国产麻豆国产在线观看| 亚洲天堂男人天堂| 日本黄色特级片| 日韩av午夜| 亚洲国产天堂久久综合网| 日日夜夜精品视频免费观看| 四虎永久精品在线| 欧美日韩精品欧美日韩精品一综合| 日本在线视频www| 成人爱爱网址| 欧美日韩亚洲激情| 国产日韩一区二区在线| 高清av免费看| 一级α片免费看刺激高潮视频| 国产九九精品| 欧美在线视频一区二区| 黄色一级片免费在线观看| 中文高清一区| 欧美尤物巨大精品爽| 久久精品视频1| 久久福利一区| 国产精品高精视频免费| 一区二区视频网| 韩国午夜理伦三级不卡影院| 成人免费视频网址| www.热久久| 北岛玲一区二区三区四区| 国产伦理久久久| 无码精品人妻一区二区| 久久久久国产一区二区三区四区| 日产精品一线二线三线芒果| 福利成人在线观看| 亚洲同性gay激情无套| 老司机激情视频| 色在线中文字幕| 欧美午夜视频网站| 女人扒开腿免费视频app| 午夜激情福利网| 蜜臀av在线| 精品电影在线观看| 任你操这里只有精品| 99欧美精品| 91精品国产色综合久久不卡蜜臀 | 岛国精品视频在线播放| 成人在线看视频| 日韩电影精品| 亚洲第一视频网站| 免费视频91蜜桃| 欧美1区2区视频| 日本成人激情视频| 97超视频在线观看| 91亚洲午夜精品久久久久久| 无遮挡亚洲一区| 不卡一本毛片| 欧美三级电影网| 中文在线字幕观看| 日韩欧美一区二区三区在线视频| 欧美大片第1页| 波多野结衣黄色| 成人av综合在线| 亚洲精品影院| 国产一区在线免费| 亚洲第一第二区| 国产欧美一区二区精品性色超碰| 可以免费看的黄色网址| 在线一区av| 精品三级在线看| 午夜成人亚洲理伦片在线观看| 99精品国产99久久久久久福利| 国产美女扒开尿口久久久| 天天操天天干天天操| ...中文天堂在线一区| 日韩av在线综合| 国产一区二区三区不卡av| 色噜噜狠狠色综合网图区| 特级做a爱片免费69| 国产一区二区女| 三区精品视频观看| 蜜桃在线视频| 精品国产乱码久久久久久久| 国产一二三四视频| 久久久亚洲一区| 久草精品电影| 黄色羞羞视频在线观看| 91麻豆精品国产91久久久资源速度 | 国产精品久久久久久久久久直播 | 伊人精品综合| www.美女亚洲精品| 日韩xxx视频| 久久久久久免费| 欧美不卡在线播放| 成人知道污网站| 欧美高跟鞋交xxxxxhd| 国产精品高潮呻吟久久久| 国产欧美一区二区在线观看| 国内外成人激情视频| 欧美freesex8一10精品| 午夜精品一区二区三区在线视| www.色呦呦| 亚洲乱码日产精品bd| 亚洲欧美国产中文| 色喇叭免费久久综合| 国产精品久久久久久久久久久久久久| 性感美女福利视频| 色综合一区二区| 深爱五月激情网| 久久久久久一区二区| 你懂的视频在线一区二区| 国产精品高颜值在线观看| 精品国产三级a在线观看| 精品一区二区三区人妻| 成人精品视频一区二区三区| 福利视频一二区| 丝袜久久网站| 国产精品6699| 日韩在线免费电影| 日韩一区和二区| 久久艹精品视频| 99国产精品久| 久久综合久久色| 欧美电影免费播放| 99中文视频在线| 男人天堂视频在线观看| 亚洲视频在线看| 一级片在线免费观看视频| 亚洲欧美一区二区三区极速播放 | 亚洲一区二区三区日本久久九| 九九热精品视频在线播放| 性欧美videos另类hd| 香蕉乱码成人久久天堂爱免费| 精品中文字幕在线播放 | 欧美亚洲另类制服自拍| 成人亚洲性情网站www在线观看| 欧美日韩在线观看一区二区| 日韩欧美国产成人精品免费| 成人黄色国产精品网站大全在线免费观看 | 国产国产精品| 国产a一区二区| 波多野结衣亚洲| 久久视频免费在线播放| 欧美特黄一级视频| 日本高清视频一区二区| 欧美性x x x| 91最新地址在线播放| 91制片厂毛片| 影音先锋久久久| 亚洲国产日韩欧美| 成人春色在线观看免费网站| 国产精品www色诱视频| dj大片免费在线观看| 精品视频在线导航| 国产色视频在线| 91福利在线免费观看| 五月天丁香激情| 久久精品视频在线看| 91丝袜超薄交口足| 久久精品动漫| 成人在线国产视频| 99久久影视| 另类欧美小说| 亚洲一区二区三区在线免费| 国产精品丝袜高跟| 老牛影视精品| 欧美福利视频在线| 欧美成人性生活视频| 精品国产亚洲在线| 国产精品视频a| 欧美主播一区二区三区| 91浏览器在线观看| 亚洲免费在线播放| 少妇av片在线观看| 91碰在线视频| 污片免费在线观看| 国产精品69毛片高清亚洲| 亚洲欧美自拍另类日韩| 久久久久网站| 日韩中文字幕三区| 亚洲午夜极品| 日韩不卡视频一区二区| 久久一区91| 日韩女优中文字幕| 婷婷成人在线| 久久精品女人的天堂av| 成人黄色av网址| 91成人免费视频| 波多野结衣免费观看| 欧美男体视频| 91国产一区在线| xxxx成人| 欧美激情综合色| 在线heyzo| 欧美成人免费大片| jizz性欧美10| 久久精品视频免费播放| 18视频免费网址在线观看| 亚洲色图美腿丝袜| 极品白浆推特女神在线观看| 精品无人区乱码1区2区3区在线| 高清乱码毛片入口| 精品国产污污免费网站入口 | 欧美成人资源| 欧洲亚洲女同hd| 亚洲优女在线| 日韩av片免费在线观看| 欧美aa视频| 国产精品免费久久久久影院| 国产91精品在线| 国产一区私人高清影院| 视频91a欧美| 亚洲在线免费看| 亚洲高清在线一区| 国产欧美精品一区二区三区| 激情视频极品美女日韩| 久草精品电影| 国内精品久久久久久久影视简单| 色一情一区二区三区四区| 日韩在线视屏| 欧美性受黑人性爽| 欧美日本一区| 男人日女人逼逼| 老司机精品导航| www.久久av.com| 国产成人免费视频一区| 老司机免费视频| 久久久青草青青国产亚洲免观| 日本一二三不卡视频| 中文字幕一区二区三区乱码在线| 91成人福利视频| 亚洲.国产.中文慕字在线| www.com亚洲| 欧美另类videos死尸| 亚洲美女综合网| 亚洲欧美一区二区三区在线| av在线1区2区| 欧美日韩xxx| 欧美电影免费看| 91网站免费观看| 日韩美脚连裤袜丝袜在线| 亚洲亚洲精品三区日韩精品在线视频| 亚洲国产精品久久久久蝴蝶传媒| www.好吊操| 日韩av网站在线观看| 久久久久无码精品| 国产无一区二区| 精品在线视频观看| 欧美午夜一区二区三区| 丁香六月色婷婷| 国产一区二区三区在线看| 午夜伦理在线视频| 日韩av男人的天堂| 国产精品45p| 一区二区三区四区五区视频| 激情综合自拍| 依人在线免费视频| 99热精品国产| 成人免费精品动漫网站| 色94色欧美sute亚洲线路一ni| 99久久久国产精品无码免费| 国产视频久久网| 天堂av中文在线| 国产精品免费久久久久影院| 国产伦精品一区二区三区在线播放 | 国产白浆在线观看| 亚洲人成五月天| 欧美xxxx做受欧美88bbw| 国产精品视频一区国模私拍| 国产一区二区三区不卡av| 久久av秘一区二区三区| 久久久久久久波多野高潮日日| 免费看三级黄色片| 国产精品黄色在线观看| 6080午夜伦理| 亚洲成人av片| a级网站在线播放| 国产精品影院在线观看| 亚瑟一区二区三区四区| 国产精品久久国产| 国产一区二区在线电影| 嘿嘿视频在线观看| 91国内精品野花午夜精品| 手机在线观看毛片| 九九视频直播综合网| 二区三区精品| 亚洲午夜在线观看| 麻豆国产91在线播放| 播金莲一级淫片aaaaaaa| 亚洲电影中文字幕在线观看| 国产草草影院ccyycom| 日韩中文字幕视频| 韩国精品视频在线观看| 欧美日韩亚洲综合一区二区三区激情在线| 黄色在线一区| av在线天堂网| 亚洲午夜免费电影| 精品人妻一区二区三区含羞草| 久久精品中文字幕| 96视频在线观看欧美| 午夜在线视频免费观看| 国产在线看一区| 国产人妻精品一区二区三区不卡| 欧美日韩精品久久久| 美女羞羞视频在线观看| 国产情人节一区| 久久久久亚洲| 亚洲自拍第三页| 亚洲欧美激情在线| www.亚洲黄色| 欧美极品少妇xxxxⅹ喷水 | 欧美综合二区| 日韩乱码人妻无码中文字幕久久| 日韩欧美精品网站| 黄色大片在线免费观看| 国产精品久久久久久超碰| 精品国产91乱码一区二区三区四区| 日本成人在线免费视频| 国产日韩综合av| 在线免费a视频| 裸体素人女欧美日韩| 伊甸园精品99久久久久久| 激情五月播播久久久精品| caoporn91| 精品国产123| 成人福利av| 在线国产99| 岛国av在线一区| 亚洲欧美在线视频免费| 亚洲乱码一区av黑人高潮| 人人鲁人人莫人人爱精品| 亚洲一区在线免费| 国产超碰在线一区| 九一国产在线观看| 综合国产在线观看| 欧美日本三级| 欧美视频在线播放一区| 日本一区二区视频在线观看| 国产又粗又黄又爽| 久久久免费高清电视剧观看| 九一精品国产| 日本女人黄色片| 欧美性猛交xxxx富婆弯腰| 又爽又大又黄a级毛片在线视频| 亚洲aa中文字幕| 国产一级久久| 天天操夜夜操av| 日韩av在线一区二区| 99精品在免费线偷拍| 超碰人人爱人人| 国产午夜精品理论片a级大结局 | 情侣偷拍对白清晰饥渴难耐| 日韩久久久久久| 欧美暴力调教| www.国产在线播放| 国产精品理论在线观看| 五月婷婷伊人网|