亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Java 中使用循環將字符串分成字母組?

如何在 Java 中使用循環將字符串分成字母組?

元芳怎么了 2023-04-13 10:34:15
我必須編寫一個將字符串分成組的方法。用戶應該給出每組字母的數量,函數應該返回一個字符串,該字符串由分成幾組的輸入字符串組成。例如,function(“HELLOYOU”, 2) 將返回“HE LL OY OU”。
查看完整描述

3 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

您可以使用下面的代碼,它接受一個String實例和一個int定義要分割的字符數的N。然后使用String實例split方法。

public static String[] split(String input, int len){

? ? // To prevent any NullPointerException being thrown

? ? if (StringUtils.isEmpty()) {

? ? ? ? return null;

? ? }

? ? // Split the input string based on a regex pattern

? ? return input.split(String.format("(?<=\\G.{%1$d})", len));

}

這里使用的正則表達式是(?<=\\G.{%1$d})基于lenbeing2的正則表達式(?<=\\G.{2})。所以這意味著它將每 2 個字符拆分一次。因此,字符串的輸出HELLOWORLD將為HE,?LL,?OW,?OR,?LD。

如果您想將它們合并為一個String空間,您可以使用該StringUtils#join方法。

String?joinedString?=?StringUtils.join(split,?StringUtils.SPACE);

哪個會產生"HE LL OW OR LD"

所以一個多合一的方法是:

public static String separateNthCharacter(String input, int len) {

? ? // To prevent any NullPointerException being thrown

? ? if (StringUtils.isEmpty()) {

? ? ? ? return StringUtils.EMPTY;

? ? }


? ? String[] split = input.split(String.format("(?<=\\G.{%1$d})", len));

? ? return StringUtils.join(split, StringUtils.SPACE);

}


查看完整回答
反對 回復 2023-04-13
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

您可以將輸入字符串的字符移動到新字符串,并在等于“大小”的每個步驟上放置空格:


String function(String input, int parts) {

    StringBuilder result = new StringBuilder();

    int partCounter = 0;

    for (int i = 0; i < input.length(); i++) {

        partCounter++;

        result.append(input.charAt(i));

        if (partCounter == parts){

            result.append(" ");

            partCounter = 0;

        }

    }


    return result.toString();

}


查看完整回答
反對 回復 2023-04-13
?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

您可以使用String.split()將字符串分解為單個字母的數組,然后組合成對的字母或更大的組等。


這是一些示例代碼:


String[] splitInParts(String input, int size) {

    String[] letters = input.split("");

    String[] output = new String[letters / size];


    for (int i = 0; i < output.length; i++) {

        output[i] = "";

        for (int j = 0; j < size; j++) {

            output[i] = output[i] + letters[size * i + j];

        }

    }


    return output;

}

缺少很多樣板代碼,例如,檢查循環參數是否在范圍內,檢查字符串是否為空等。但是,這是您如何著手去做的粗略想法。


查看完整回答
反對 回復 2023-04-13
  • 3 回答
  • 0 關注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號