Я разбил строку «это тест для строки длиннее, чем» на подстроки длиной 7 (или меньше), поэтому у меня есть список strList, который выглядит следующим образом: [это, является, тест, для, thestri, нг, длиннее, чем]
мне нужно распечатать это в строках длиной 7, сохраняя подстроки целыми: [это тест, для, thestri, нг, длиннее, чем]
но я получаю это вместо этого, и я не могу найти ошибку [это, это, тест, потому что, больше, дольше, чем, семь, charact, ers]
так, что я ' Я пытаюсь сделать, это получить длину подстроки и сравнить ее с пределом в 7 символов (L1), а если он меньше L1 - взять следующую подстроку и добавить ее в ту же строку (предоставляя сумму их длин + пробел между ними). все еще 7 или меньше). затем в список добавляются новые строки strList2
package mylessons;
import java.util.*;
public class Level160 {
public static void main(String[] args) {
int L1 = 7; // length limit
int len1 = 0;
String tmpStr1 = "";
List<String> strList = new ArrayList<>();
List<String> strList2 = new ArrayList<>();
strList.add("this");
strList.add("is");
strList.add("a");
strList.add("test");
strList.add("for");
strList.add("thestri");
strList.add("ng");
strList.add("longer");
strList.add("than");
System.out.println(strList);
for (int k = 0; k < strList.size(); k++ ) {
// substring is shorter than L1 - 1 -->> adding to tmpStr1
if (strList.get(k).length() + len1 < L1 - 1) {
tmpStr1 = tmpStr1 + strList.get(k).toString() + " ";
len1 = (len1 + strList.get(k).length() + 1);
}
// substring is L - 1 (whitespace is last char) -->> adding to tmpStr -->> adding to strList2
if (strList.get(k).length() + len1 == L1 - 1) {
tmpStr1 = tmpStr1 + strList.get(k).toString();
strList2.add(tmpStr1);
len1 = 0;
tmpStr1 = "";
}
// substring is L -->> adding to tmpStr -->> adding to strList2
if (strList.get(k).length() + len1 == L1) {
tmpStr1 = tmpStr1 + strList.get(k).toString();
strList2.add(tmpStr1);
len1 = 0;
tmpStr1 = "";
}
if (strList.get(k).length() + len1 > L1) {
strList2.add(strList.get(k));
}
}
System.out.println(strList2);
}
}
любая помощь приветствуется:)