精品欧美一区二区三区在线观看 _久久久久国色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)

黄色一级视频在线观看| 777av视频| 国产乡下妇女做爰毛片| 中文字幕日韩在线| 亚洲精品美国一| 亚洲一区二区三区香蕉| 亚洲欧美另类日本| 成人自拍视频网| 国产精品久久久久久久久久免费看| 欧美一级大片在线免费观看| 在线免费观看成年人视频| 粉嫩一区二区三区| 国产精品二三区| 91中文字幕在线| 久草视频在线资源站| 国产在线播放精品| 日本丰满少妇一区二区三区| 天堂资源在线亚洲资源| 国产免费久久久| 欧美另类视频| 精品无码久久久久久国产| 香蕉视频网站入口| 污污的网站在线免费观看| 精品一区二区久久久| 欧美超级免费视 在线| 美女伦理水蜜桃4| 在线看的毛片| 中文文精品字幕一区二区| 亚洲专区中文字幕| 日韩av在线电影| 清纯唯美日韩| 日韩限制级电影在线观看| 六月丁香激情网| 天堂地址在线www| 成人午夜av在线| 国产91热爆ts人妖在线| 毛片久久久久久| 91国内精品| 欧美在线免费播放| 超碰10000| 精品无吗乱吗av国产爱色| 精品一区二区三区香蕉蜜桃| 992tv成人免费影院| 中文字幕第69页| 国产一区丝袜| 91精品免费观看| 妞干网视频在线观看| 国产美女视频一区二区三区 | 爆操欧美美女| 久久久久久电影| 国产另类自拍| 精品国产99久久久久久宅男i| 日本亚洲视频在线| 69av在线播放| 成人在线观看小视频| 国产精品手机在线播放| 亚洲福利视频专区| 亚洲av毛片在线观看| 欧美色网一区| 亚洲一本大道在线| 中文字幕第一页亚洲| 成人欧美亚洲| 99re这里都是精品| 成人精品在线观看| а中文在线天堂| 国产亚洲激情| 久久久免费电影| 全网免费在线播放视频入口| 欧美日韩水蜜桃| 日韩精品高清视频| 五月天丁香社区| 欧美在线在线| 91精品欧美久久久久久动漫| 色国产在线视频| 丝袜美腿一区| 色先锋aa成人| 欧美色图色综合| 成人bbav| 五月婷婷久久综合| 2018日日夜夜| 久久久久黄久久免费漫画| 一区二区三区四区国产精品| 四虎4hu永久免费入口| jizz在线观看视频| 国产精品高清亚洲| av电影一区二区三区| yellow91字幕网在线| 亚洲欧洲成人精品av97| 日本午夜精品电影| av在线资源网| 中文在线资源观看网站视频免费不卡 | 亚洲一区在线电影| avav在线播放| av在线理伦电影| 欧美日韩精品二区| 那种视频在线观看| 日韩av电影资源网| 欧美日韩一区二区不卡| 天天操狠狠操夜夜操| 国产专区精品| 亚洲成人精品久久| 91九色蝌蚪porny| 日韩精品社区| 亚洲欧美在线磁力| 国产精品www爽爽爽| 久久看人人摘| 欧美美女15p| 日本少妇性高潮| 久久亚洲欧洲| 91精品免费久久久久久久久| 99免费在线视频| 成人免费毛片嘿嘿连载视频| 久久日韩精品| 邻家有女韩剧在线观看国语| 国产精品久久久久久久久久久免费看| 免费看av软件| 98色花堂精品视频在线观看| 日本高清不卡一区| 成年人看片网站| 亚州综合一区| 视频在线一区二区| 久久精品免费av| 日韩电影在线观看网站| 亚洲在线www| 日本a一级在线免费播放| 中文字幕av在线一区二区三区| 亚洲一区二区三区乱码| аⅴ资源天堂资源库在线| 欧美性大战久久久久久久蜜臀| 永久免费黄色片| 老牛精品亚洲成av人片| 色偷偷88888欧美精品久久久| 免费一级a毛片夜夜看| 久久综合图片| 99久久国产免费免费| 黄色av网站在线免费观看| 亚洲精品视频在线| 女人另类性混交zo| 97一区二区国产好的精华液| 一区二区三区无码高清视频| www.99re7.com| 美女视频第一区二区三区免费观看网站| 18成人免费观看网站下载| 日韩精品123| 一区二区三区自拍| 欧美大尺度做爰床戏| 97视频com| 国产一级特黄aaa大片| 精品一二三四在线| 日韩高清dvd| 欧美伦理91| 亚洲第一国产精品| 青青草免费av| 国产一区二区在线看| 亚洲精品二区| 国产精品高清乱码在线观看| 亚洲精品理论电影| 日韩福利片在线观看| 国产成人精品免费在线| 男插女免费视频| 亚洲一区导航| 久久精品视频在线| 一级日韩一级欧美| 国产精品成人一区二区三区夜夜夜| 欧美两根一起进3p做受视频| 亚洲高清极品| 日本韩国欧美精品大片卡二| 日本亚洲一区| 色婷婷香蕉在线一区二区| 爱爱的免费视频| 久久久久国产精品一区三寸 | 日本在线一区二区三区| 日韩美女一区二区三区在线观看| 3d动漫精品啪啪1区2区免费| 免费成人深夜蜜桃视频| 久草在线在线精品观看| 先锋影音男人资源| 麻豆久久一区| 久久久久国产视频| 亚洲 精品 综合 精品 自拍| 欧美性xxxx极品hd欧美风情| 亚洲一区二区三区日韩| 日本一区中文字幕| 免费观看黄色大片| 伊人久久大香线蕉av超碰| 午夜精品一区二区三区在线 | 亚洲自拍偷拍视频| 91福利国产在线观看菠萝蜜| 欧美刺激午夜性久久久久久久| 久久这里只有精品国产| 99精品一区二区三区| 亚洲国产精品久久久久爰色欲| 奇米亚洲欧美| 成人h猎奇视频网站| 怡红院在线观看| 亚洲国模精品一区| 青青艹在线观看| 亚洲精品乱码久久久久久久久| 一级黄色片毛片| 久久久精品午夜少妇| 男人j进女人j| 亚洲ab电影| 亚洲va久久久噜噜噜| 激情黄产视频在线免费观看| 视频在线观看99| 亚洲国产精品久久久久久久| 欧洲精品一区二区三区在线观看| 精品人妻伦九区久久aaa片| 91首页免费视频| 999在线观看| 国产视频一区三区| 日韩video| 一本久久青青| 91久久大香伊蕉在人线| 欧美黑人巨大xxxxx| 久久艹在线视频| 欧美理论在线观看| 日韩欧美国产一区二区三区 | 国产精品一区二区三区美女| 国产精品网站视频| 日本在线啊啊| 欧美成人精品在线| av在线收看| 亚洲成人激情在线| 99在线精品视频免费观看20| 欧美色videos| 免费人成年激情视频在线观看| 中文字幕精品在线不卡| 亚洲精品女人久久久| 韩国精品久久久| www.日日操| 在线精品一区二区| 成人性做爰片免费视频| 日韩在线欧美| 欧美国产一区二区在线| 国产精品自在线拍| 成人永久免费| www.成人| 国产精品久久久久久久久久ktv| 91吃瓜在线观看| 久久91亚洲精品中文字幕奶水| 中文字幕在线视频区| 亚洲免费伊人电影在线观看av| 成人h动漫精品一区二区无码| 欧美日韩精品二区第二页| 99超碰在线观看| 亚洲无线码一区二区三区| 天天看片中文字幕| 亚洲天堂精品在线观看| 最新中文字幕av| 久久综合九色综合欧美亚洲| 波多野结衣一二三区| 福利一区二区在线观看| 精品国产aⅴ一区二区三区东京热| 精品一区二区免费在线观看| 污污网站免费观看| 美女一区二区三区在线观看| 亚洲天堂av线| 久久精品久久久精品美女| 国产又猛又黄的视频| 日本强好片久久久久久aaa| 亚洲国产精品毛片av不卡在线| 亚洲综合激情| 日韩av片在线看| 久久国产成人| 精品国产成人av在线免| 三级不卡在线观看| 国产wwwxx| 日本色综合中文字幕| 污版视频在线观看| 精品在线观看免费| 毛毛毛毛毛毛毛片123| 国产成人久久精品77777最新版本| 交换做爰国语对白| 国产精品白丝jk白祙喷水网站| 4438x全国最大成人| 不卡欧美aaaaa| 亚洲av无码一区二区三区网址| 26uuu久久综合| 精品无码人妻一区| 国产精品麻豆久久久| 2014亚洲天堂| 一区二区三区在线观看欧美 | 国模私拍视频在线| 日韩成人网免费视频| 国产裸舞福利在线视频合集| 日韩亚洲在线观看| 免费电影视频在线看| 77777少妇光屁股久久一区| 成人看片网页| 91在线精品视频| 粉嫩的18在线观看极品精品| 欧美日韩精品免费观看视一区二区| 欧美一区2区| 国产高清免费在线| 一本久道久久久| 孩娇小videos精品| 成人精品免费看| 永久免费av无码网站性色av| 亚洲人精品一区| 日操夜操天天操| 欧美日韩小视频| 亚洲精品无码久久久| 亚洲色图欧美制服丝袜另类第一页| 拍真实国产伦偷精品| 久久久久久尹人网香蕉| 成人免费av电影| 97超碰最新| 国产欧美日韩视频在线| 97在线免费视频观看| 视频在线观看91| 蜜桃视频无码区在线观看| 国产色91在线| 久久久久久久中文字幕| 色国产综合视频| 午夜精品久久久久久久96蜜桃 | 国产精品19p| 久久久国产精华| 久久久久性色av无码一区二区| 欧美性xxxx在线播放| 超碰在线观看av| 日韩亚洲精品视频| 国产免费不卡| 国产精品99久久久久久久| 色天天综合网| 精品一卡二卡三卡| 成人小视频在线| 波多野结衣在线网址| 色哟哟亚洲精品| 少妇人妻一区二区| 久久成人av网站| 日本欧美韩国| 久久国产精品亚洲va麻豆| 欧美国内亚洲| 中文字幕中文在线| 欧美激情综合五月色丁香| 国产欧美日韩另类| 亚洲成人av中文字幕| 影音先锋中文在线视频| 91免费国产视频| 日本一二区不卡| www黄色在线| 97精品视频在线观看自产线路二| 久久国产在线视频| 91精品国产综合久久精品性色| 国产精品久久久久久久龚玥菲| 2019最新中文字幕| www.国产精品一区| 日韩 欧美 视频| 国产电影一区在线| 午夜国产福利一区二区| 9191国产精品| 成人无遮挡免费网站视频在线观看| 国产精品一区电影| 欧洲杯什么时候开赛| 久草综合在线观看| 国产欧美日韩中文久久| 91丨九色丨海角社区| 亚洲午夜国产成人av电影男同| 在线天堂中文资源最新版| 精品国产第一页| 亚洲美女啪啪| 中文字幕日韩三级片| 欧美午夜精品久久久久久浪潮 | 国产麻豆一区二区三区在线观看| 欧美福利电影在线观看| 女人扒开双腿让男人捅 | 亚洲激情一区二区| 美国一区二区三区在线播放| 少妇高潮惨叫久久久久| 欧美精品久久天天躁| jizz性欧美| 粉嫩精品一区二区三区在线观看| 亚洲天堂激情| 国产一级二级视频| 日本高清不卡视频| 免费黄色网址在线观看| 5566av亚洲| 国产精品黄色| 久久无码人妻精品一区二区三区 | 国产视频精品在线| 成人啊v在线| av不卡在线免费观看| 国v精品久久久网| 日韩精品一区二区三| 亚洲精选在线观看| 久久精品资源| 欧洲精品视频在线| 91在线观看地址| 国产一级片一区二区| 中文字幕人成乱码在线观看| 亚洲尤物视频网| 在线看片欧美| www.99热| 欧美一区二区日韩一区二区| 麻豆网站免费在线观看| 亚洲国产欧洲综合997久久| 国产乱码精品一品二品| 国产欧美一级片| 91精品国产综合久久婷婷香蕉|