3 回答

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})
基于len
being2
的正則表達式(?<=\\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);
}

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

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;
}
缺少很多樣板代碼,例如,檢查循環參數是否在范圍內,檢查字符串是否為空等。但是,這是您如何著手去做的粗略想法。
添加回答
舉報