usingSplitMethod ( String text, int n )" />

色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

代碼字符串分割方法

科技綠洲 ? 來(lái)源:了不起 ? 作者:了不起 ? 2023-09-25 11:42 ? 次閱讀

我們寫(xiě)代碼的時(shí)候,經(jīng)常會(huì)遇到這樣一個(gè)場(chǎng)景,那就是分割字符串。比如說(shuō)把一個(gè)字符串分成N個(gè),或者說(shuō)按照N個(gè)字符分割。

我們今天就來(lái)看看怎么每隔N個(gè)字符分割字符串。首先我們就使用 JDK 中內(nèi)置的 String#split 來(lái)分割。

使用 String#split 方法

String 類(lèi)中 split 方法,是我們平常處理字符串分割最常用的方法之一,它可以根據(jù)給定的分隔符或正則表達(dá)式將一個(gè)字符串分割成多個(gè)部分。

我們來(lái)看個(gè)例子:

public static List< String > usingSplitMethod(String text, int n) {
    String[] results = text.split("(?<=G.{" + n + "})");

    return Arrays.asList(results);
}

我們通過(guò)使用正則表達(dá)式 "(?<=G.{" + n + "})"來(lái)分割字符串,其中表達(dá)式中的 n 表示字符的長(zhǎng)度。

我們可以通過(guò)以下測(cè)試用例代碼驗(yàn)證這個(gè)正則是否有效。

public class SplitStringEveryNthCharUnitTest {

    public static final String TEXT = "abcdefgh123456";

    @Test
    public void givenString_whenUsingSplit_thenSplit() {
        List< String > results = SplitStringEveryNthChar.usingSplitMethod(TEXT, 3);

        assertThat(results, contains("abc", "def", "gh1", "234", "56"));
    }
}

使用 String#substring 方法

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;
}

我們通過(guò)以下測(cè)試用例代碼來(lái)驗(yàn)證。

@Test
public void givenString_whenUsingSubstring_thenSplit() {
    List< String > results = SplitStringEveryNthChar.usingSubstringMethod("abcdefgh123456", 4);

    assertThat(results, contains("abcd", "efgh", "1234", "56"));
}

使用 Pattern 類(lèi)

Pattern 類(lèi)通常來(lái)說(shuō),我們是用于處理正則表達(dá)式,做一些match使用,正如第一種 String#split 方法所見(jiàn),正則表達(dá)式也可以用于分割字符串。這里就展示一下,使用Pattern類(lèi)來(lái)處理字符串分割。

public static List< String > usingPattern(String text, int n) {
    return Pattern.compile(".{1," + n + "}")
        .matcher(text)
        .results()
        .map(MatchResult::group)
        .collect(Collectors.toList());
}

我們使用 .{1,n}構(gòu)建了一個(gè) Pattern 對(duì)象,它能個(gè)匹配 1 到 n 個(gè)字符, 使用下面的測(cè)試用例簡(jiǎn)單測(cè)試一下

@Test
public void givenString_whenUsingPattern_thenSplit() {
    List< String > results = SplitStringEveryNthChar.usingPattern("abcdefgh123456", 5);

    assertThat(results, contains("abcde", "fgh12", "3456"));
}

使用 Guava

到現(xiàn)在為止,我們已經(jīng)學(xué)了幾種通過(guò) JDK 相關(guān) API 完成這個(gè)操作的方法,下面我們來(lái)看看怎么使用 Guava 來(lái)實(shí)現(xiàn)這個(gè)小功能。

public static List< String > usingGuava(String text, int n) {
    Iterable< String > parts = Splitter.fixedLength(n).split(text);

    return ImmutableList.copyOf(parts);
}

Guava 通過(guò) Splitter 類(lèi)可以很簡(jiǎn)單的針對(duì)我們的這個(gè)使用場(chǎng)景,進(jìn)行字符串分割。這個(gè) fixedLength() 方法為后續(xù)的分割提供了固定的分割長(zhǎng)度。

我們通過(guò)下面的測(cè)試用例來(lái)測(cè)試一下。

@Test
public void givenString_whenUsingGuava_thenSplit() {
    List< String > results = SplitStringEveryNthChar.usingGuava("abcdefgh123456", 6);

    assertThat(results, contains("abcdef", "gh1234", "56"));
}

總結(jié)

字符串分割在我們工作中很常用,但大部分情況我們只會(huì)使用 String#split , 看到其他的一些情況,是不是感覺(jué)有點(diǎn)有趣,沒(méi)想到字符串分割還能這樣玩。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1499

    瀏覽量

    61961
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    578

    瀏覽量

    20506
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68521
  • JDK
    JDK
    +關(guān)注

    關(guān)注

    0

    文章

    81

    瀏覽量

    16592
  • string
    +關(guān)注

    關(guān)注

    0

    文章

    40

    瀏覽量

    4732
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何在bash中分割字符串

    假設(shè)我們有一個(gè)由逗號(hào)或者下劃線隔開(kāi)的多個(gè)單詞組成的字符串,需要拆分這個(gè)字符串提取各個(gè)單詞。
    發(fā)表于 12-07 17:10 ?3712次閱讀

    字符串字符串數(shù)組實(shí)現(xiàn)對(duì)漢字的分割

    輸入字符串,輸出字符串數(shù)組,實(shí)現(xiàn)對(duì)漢字的分割.
    發(fā)表于 12-23 14:09

    字符串與ASCII碼字符串的相互轉(zhuǎn)換

    本帖最后由 貓仔靜2019 于 2022-8-24 10:05 編輯 字符串與ASCII碼字符串的相互轉(zhuǎn)換
    發(fā)表于 08-24 10:00

    怎么從4mb磁盤(pán)保存/加載html代碼字符串

    一直無(wú)法做到這一點(diǎn)。我在網(wǎng)上看到的教程是針對(duì)單行字符串執(zhí)行此操作的,而我的 html 代碼顯然是多行字符串。我怎么可能從 4mb 磁盤(pán)保存/加載 html 代碼字符串
    發(fā)表于 02-28 08:28

    字符串移位包含的問(wèn)題解決方案

    問(wèn)題:給定字符串s和t,判斷是否字符串t能通過(guò)將s移位后的字符串所包含。 方法一 最簡(jiǎn)單的方法就是將s進(jìn)行循環(huán)移位,再判斷移位后的
    發(fā)表于 11-29 10:05 ?1044次閱讀

    python字符串拼接方式了解

    python字符串拼接的方式 在Python的實(shí)際開(kāi)發(fā)中,很多都需要用到字符串拼接,python中字符串拼接有很多,今天總結(jié)一下: 用+符號(hào)拼接 用%符號(hào)拼接 用join()方法拼接
    發(fā)表于 12-06 10:09 ?1032次閱讀

    新手必知的Python:分割字符串的步驟及源代碼

    若你使用過(guò) Shell 中的 awk 工具,會(huì)發(fā)現(xiàn)用它來(lái)分割字符串是非常方便的。特別是多個(gè)連續(xù)空格會(huì)被當(dāng)做一個(gè)處理。
    的頭像 發(fā)表于 08-25 10:48 ?2180次閱讀
    新手必知的Python:<b class='flag-5'>分割</b><b class='flag-5'>字符串</b>的步驟及源<b class='flag-5'>代碼</b>

    什么是復(fù)制字符串?Python如何復(fù)制字符串

    。 在上一篇文章《你真的知道Python的字符串怎么用嗎?》里,我突發(fā)奇想,將字符串跟列表做了比較,然后發(fā)現(xiàn)字符串竟然沒(méi)有復(fù)制的方法。當(dāng)時(shí)沒(méi)有細(xì)想,只說(shuō)要擱置疑問(wèn)。過(guò)后,有好學(xué)的小伙伴
    發(fā)表于 11-25 10:32 ?3011次閱讀

    平化字符串處理方法簡(jiǎn)介

    這里介紹一組有用的字符串處理方法,即平化至字符串和從字符串還原。
    的頭像 發(fā)表于 09-26 10:20 ?2262次閱讀

    python字符串有哪些特定方法

    python字符串序列操作也適用于列表和元組。 python字符串還有獨(dú)有方法,即字符串對(duì)象的函數(shù),其他對(duì)象不可調(diào)用,只有字符串對(duì)象可
    的頭像 發(fā)表于 02-23 15:02 ?703次閱讀

    字符串的相關(guān)知識(shí)

    TCL 中的數(shù)據(jù)類(lèi)型只有一種:字符串。這些字符串可以是字母、數(shù)字、布爾值、標(biāo)點(diǎn)符號(hào)等特殊字符的組合。在某些特殊命令的作用下,字符串可以向其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換。下面將系統(tǒng)的講解或回顧下
    的頭像 發(fā)表于 03-29 11:41 ?1145次閱讀

    C語(yǔ)言定義字符串的幾種方法

    C語(yǔ)言中定義字符串有哪些方法
    的頭像 發(fā)表于 03-31 09:41 ?3553次閱讀

    Python中檢查字符串包含的方法

    Python 有多種處理字符串方法。今天我們介紹如何檢查一個(gè)字符串中是否包含另一個(gè)字符串
    的頭像 發(fā)表于 05-14 16:02 ?1.6w次閱讀

    oracle字符串split成多個(gè)

    Oracle是一種廣泛使用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它提供了許多強(qiáng)大的功能和函數(shù),用于處理和操作數(shù)據(jù)。其中之一就是字符串分割(split)方法,該方法用于將一個(gè)
    的頭像 發(fā)表于 12-06 09:54 ?5273次閱讀

    labview字符串如何轉(zhuǎn)換為16進(jìn)制字符串

    在LabVIEW中,將字符串轉(zhuǎn)換為16進(jìn)制字符串是一個(gè)常見(jiàn)的需求,尤其是在處理數(shù)據(jù)通信和硬件接口時(shí)。LabVIEW提供了多種方法來(lái)實(shí)現(xiàn)這一轉(zhuǎn)換,包括使用內(nèi)置函數(shù)、編寫(xiě)VI(Virtual
    的頭像 發(fā)表于 09-04 15:54 ?2296次閱讀
    主站蜘蛛池模板: 国内精品久久| 无人区乱码1区2区3区网站| 久久这里只精品热在线99| 男人插曲女人身体视频| 亚洲欭美日韩颜射在线二| 国产精品女主播主要上线| 免费国产久久啪在线| 羞羞影院午夜男女爽爽免费| 大学生第一次破苞疼哭了| 欧美性xxx极品| 一边吃奶一边添P好爽故事| 国产在线中文字幕| 国产精品一区二区制服丝袜| 热久久伊大人香蕉网老师| bt成人种子| 强奷乱码欧妇女中文字幕熟女| 99久久999久久久综合精品涩| 免费亚洲视频| 99精品电影一区二区免费看| 免费的av不用播放器的| 69式国产真人免费视频| 黑人操白逼| 日韩一区二区三区精品 | 草久久久久| 口工漫画r18全彩啪啪| 越南女子杂交内射BBWXZ| 久久热在线视频精品店| 中国二级毛片| 美女被抽插到哭内射视频免费| 亚洲精品天堂在线观看| 囯产精品久久久久久久久蜜桃| 色噜噜狠狠色综合中文字幕| 99视频精品国产在线视频| 女人被躁到高潮嗷嗷叫免费| av亚洲色天堂2017| 日本久久免费大片| 国产成人cao在线| 亚洲国产精品特色大片观看| 国产精品免费观看视频| 亚洲AV 中文字幕 国产 欧美 | 免费国产足恋网站|