5980. 将字符串拆分为若干长度为 k 的组 - 力扣(LeetCode) (leetcode-cn.com)
解题思路原本以为是几行代码就搞定了,但写起来还是有点复杂,功力还是不够
解题代码
import java.util.ArrayList;
public class Solution5980 {
public String[] divideString(String s, int k, char fill) {
int n = s.length();
ArrayList arrayList = new ArrayList<>();
int i = 0;
StringBuilder stringBuilder = new StringBuilder();
while (i < n) {
stringBuilder.append(s.charAt(i));
i++;
if (i % k == 0) {
arrayList.add(stringBuilder.toString());
stringBuilder.delete(0, stringBuilder.length());
}
}
if (stringBuilder.length() == 0) {
return toArray(arrayList);
}
while (stringBuilder.length() < k) {
stringBuilder.append(fill);
}
arrayList.add(stringBuilder.toString());
return toArray(arrayList);
}
private String[] toArray(ArrayList arrayList) {
String[] strings = new String[arrayList.size()];
for (int k = 0; k < arrayList.size(); k++) {
strings[k] = arrayList.get(k);
}
return strings;
}
}
解题结果



