Скажем, у меня есть следующая строка:
String = "0123456789abcdefg";
Как я могу разбить его в блоках по 5, так что я получаю массив строк вроде
["01234", "56789", "abcde", "fg"]
Обратите внимание, что последняя строка имеет длину 2 символа.
Есть ли простой способ сделать это на Java?
//UNTESTED CODE!!
String in = "0123456789abcdefg";
List<String> blocks = new ArrayList<String>();
int i = 0;
for ( ; i < (in.length()-5) ; i += 5) { //while there are more than 5 characters remaining
blocks.add(in.substring(i, (i+5) );
}
blocks.add(in.substring(i, in.length()) //add any remaining characters
Я предполагаю, что метод substring
должен быть достаточным для вашей цели, например:
final int CHUNK_SIZE = 5;
List<String> chunks = new ArrayList<String>();
for (int i = 0; i*CHUNK_SIZE < string.length() - 1; ++i)
chunks.add(string.substring(i*chunkSize,Math.min((i+1)*chunkSize, string.length())));