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;
}
缺少很多样板代码,例如,检查循环参数是否在范围内,检查字符串是否为空等。但是,这是您如何着手去做的粗略想法。
添加回答
举报