我正在努力解决这个问题。我需要将一个字符串分成相等的长度,并为其提供一个索引。在过去的两天里,我一直在研究和尝试这个话题,但一无所获。我不想浪费我或你的时间,所以我会告诉你我想要的。这是我正在尝试做的一个例子。
杰克说:“你好,我是一个很好的人,他爬上了岩石。”,那个句子长达47个字符,所以我想我需要把它除以我希望拆分的索引。那么就说我将它除以3,即16为四舍五入。所以它会显示如下:“你好,我是”,“一个好人”,“爬上岩石。”但在其他情况下,它并不总是均匀的。为了尝试更进一步帮助你,我在网上找到了一些C#代码,我把它的大部分转换为Java但是底部部分,因为那里的所有混乱的lambdas都在底部附近。这是:private List<String> split(String str, int chunks) {
List<String> l = new ArrayList<>();
if (str == null || str.isEmpty())
return l;
if (str.length() < chunks) {
l.add(str);
return l;
}
int chunkSize = str.length() / chunks;
int stringLength = str.length();
for (int i = 0; i < stringLength; i += chunkSize) {
if (i + chunkSize > stringLength) {
chunkSize = stringLength - i;
l.add(str.substring(i, chunkSize));
}
}
final String[] residual = {""};
l.set((f, i) -> (i > chunks - 1).ToList().ForEach(f -> residual[0] += f));
l.set(chunks - 1, l.get(chunks - 1) + residual[0]);
return Arrays.asList(l.get(chunks));
}