usingSplitMethod ( String text, int n )" />

在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

代碼字符串分割方法

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

我們寫代碼的時候,經常會遇到這樣一個場景,那就是分割字符串。比如說把一個字符串分成N個,或者說按照N個字符分割。

我們今天就來看看怎么每隔N個字符分割字符串。首先我們就使用 JDK 中內置的 String#split 來分割。

使用 String#split 方法

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

我們來看個例子:

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

    return Arrays.asList(results);
}

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

我們可以通過以下測試用例代碼驗證這個正則是否有效。

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 一般情況我們都是用于截取字符串使用的,這里我們也是可以用來處理字符串的分割,只要循環就行。

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

我們通過以下測試用例代碼來驗證。

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

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

使用 Pattern

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

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}構建了一個 Pattern 對象,它能個匹配 1 到 n 個字符, 使用下面的測試用例簡單測試一下

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

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

使用 Guava

到現在為止,我們已經學了幾種通過 JDK 相關 API 完成這個操作的方法,下面我們來看看怎么使用 Guava 來實現這個小功能。

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

    return ImmutableList.copyOf(parts);
}

Guava 通過 Splitter 類可以很簡單的針對我們的這個使用場景,進行字符串分割。這個 fixedLength() 方法為后續的分割提供了固定的分割長度。

我們通過下面的測試用例來測試一下。

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

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

總結

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1500

    瀏覽量

    62013
  • 字符串
    +關注

    關注

    1

    文章

    579

    瀏覽量

    20515
  • 代碼
    +關注

    關注

    30

    文章

    4788

    瀏覽量

    68603
  • JDK
    JDK
    +關注

    關注

    0

    文章

    81

    瀏覽量

    16596
  • string
    +關注

    關注

    0

    文章

    40

    瀏覽量

    4735
收藏 人收藏

    評論

    相關推薦

    如何在bash中分割字符串

    假設我們有一個由逗號或者下劃線隔開的多個單詞組成的字符串,需要拆分這個字符串提取各個單詞。
    發表于 12-07 17:10 ?3725次閱讀

    字符串字符串數組實現對漢字的分割

    輸入字符串,輸出字符串數組,實現對漢字的分割.
    發表于 12-23 14:09

    字符串與ASCII碼字符串的相互轉換

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

    怎么從4mb磁盤保存/加載html代碼字符串

    一直無法做到這一點。我在網上看到的教程是針對單行字符串執行此操作的,而我的 html 代碼顯然是多行字符串。我怎么可能從 4mb 磁盤保存/加載 html 代碼字符串
    發表于 02-28 08:28

    字符串移位包含的問題解決方案

    問題:給定字符串s和t,判斷是否字符串t能通過將s移位后的字符串所包含。 方法一 最簡單的方法就是將s進行循環移位,再判斷移位后的
    發表于 11-29 10:05 ?1048次閱讀

    python字符串拼接方式了解

    python字符串拼接的方式 在Python的實際開發中,很多都需要用到字符串拼接,python中字符串拼接有很多,今天總結一下: 用+符號拼接 用%符號拼接 用join()方法拼接
    發表于 12-06 10:09 ?1034次閱讀

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

    若你使用過 Shell 中的 awk 工具,會發現用它來分割字符串是非常方便的。特別是多個連續空格會被當做一個處理。
    的頭像 發表于 08-25 10:48 ?2185次閱讀
    新手必知的Python:<b class='flag-5'>分割</b><b class='flag-5'>字符串</b>的步驟及源<b class='flag-5'>代碼</b>

    什么是復制字符串?Python如何復制字符串

    。 在上一篇文章《你真的知道Python的字符串怎么用嗎?》里,我突發奇想,將字符串跟列表做了比較,然后發現字符串竟然沒有復制的方法。當時沒有細想,只說要擱置疑問。過后,有好學的小伙伴
    發表于 11-25 10:32 ?3017次閱讀

    平化字符串處理方法簡介

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

    python字符串有哪些特定方法

    python字符串序列操作也適用于列表和元組。 python字符串還有獨有方法,即字符串對象的函數,其他對象不可調用,只有字符串對象可
    的頭像 發表于 02-23 15:02 ?710次閱讀

    字符串的相關知識

    TCL 中的數據類型只有一種:字符串。這些字符串可以是字母、數字、布爾值、標點符號等特殊字符的組合。在某些特殊命令的作用下,字符串可以向其他數據類型轉換。下面將系統的講解或回顧下
    的頭像 發表于 03-29 11:41 ?1152次閱讀

    C語言定義字符串的幾種方法

    C語言中定義字符串有哪些方法
    的頭像 發表于 03-31 09:41 ?3566次閱讀

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

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

    oracle字符串split成多個

    Oracle是一種廣泛使用的關系型數據庫管理系統,它提供了許多強大的功能和函數,用于處理和操作數據。其中之一就是字符串分割(split)方法,該方法用于將一個
    的頭像 發表于 12-06 09:54 ?5303次閱讀

    labview字符串如何轉換為16進制字符串

    在LabVIEW中,將字符串轉換為16進制字符串是一個常見的需求,尤其是在處理數據通信和硬件接口時。LabVIEW提供了多種方法來實現這一轉換,包括使用內置函數、編寫VI(Virtual
    的頭像 發表于 09-04 15:54 ?2475次閱讀
    主站蜘蛛池模板: 国产成都一二三四区| 免费 视频 1级| 色多多网站在线观看| 色欧美在线视频| 欧美色惰| 国产老肥熟xxxx| 欧美小网站| 在线观看中文字幕一区| 全是肉的高h短篇列车| 在线播放你懂得| 特级一级全黄毛片免费| 日本三级电影在线观看| 玖玖色视频| 成人在色线视频在线观看免费大全| 日本特级视频| 老子影院午夜精品欧美视频| 国产人人艹| 亚洲午夜日韩高清一区| 奇米色婷婷| 欧美性三级| 狠狠色噜噜狠狠狠狠黑人| 亚洲国产成人在人网站天堂| 日日夜夜天天人人| 狠狠色丁香| 五月天综合婷婷| 国产伦精品一区二区三区在线观看| 黄在线观看在线播放720p| 久久国产精品无码网站| 天堂网在线观看| 性欧美精品久久久久久久| 日韩特级毛片免费观看视频| 狠狠涩| 天天视频国产免费入口| 丁香天堂网| 国产精品久久久久乳精品爆| 色婷婷综合在线视频最新| 狠狠五月婷婷| 日韩亚色| 亚洲色图27p| 四虎永久在线精品免费观看地址| 女人张开腿男人猛桶视频|