我是Java的新手,我对格式化String有一点问题。我添加了" \ n"对于每18个字符后的新行,我必须将这些新行拆分为数组索引,每个索引有13行。
到目前为止我的代码:
String[] strings = str.split("\n");
String result;
for (int i = 1; i < strings.length; i++) {
i++;
if ((i % 13) == 0) {
result += strings[i];
} else {
result += strings[i] + "\n";
}
}
它不能正常工作,我测试了一下我不知道如何做到这一点,有人可以帮助我吗?
答案 0 :(得分:1)
你在每个循环中递增i
两次 - 一次在for
语句的递增表达式中,一次在循环内部。这意味着i
始终是偶数,因此i % 13
可能在您预期时不为0。另外,数组的第一个索引是0,所以你当前会忽略第一个元素。作为一个小问题,我建议使用StringBuilder
而不是附加Strings
:
String[] strings = str.split("\n");
StringBuilder resultBuilder = new StringBuilder();
for (int i = 0; i < strings.length; i++) {
String s = strings[i];
if ((i % 13) == 0) {
resultBuilder.append(s);
} else {
resultBuilder.append(s).append("\n");
}
}
String result = resultBuilder.toString();