Разбить строку на блок заданной длины (кроме последней)

1

Скажем, у меня есть следующая строка:

String = "0123456789abcdefg";

Как я могу разбить его в блоках по 5, так что я получаю массив строк вроде

["01234", "56789", "abcde", "fg"]

Обратите внимание, что последняя строка имеет длину 2 символа.

Есть ли простой способ сделать это на Java?

  • 2
    Давай сначала покажи мне свой код?
  • 0
    Вы можете использовать String.length и String.substring
Показать ещё 4 комментария
Теги:
string
split

2 ответа

3
//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 
  • 0
    +1 за комментарии в вашем коде (хотя я настаиваю на том, чтобы OP сначала попробовал)
  • 0
    @morgano да, я полностью согласен - мне просто хотелось это сделать. OP, этот ответ был плохой для вас. В следующий раз вы столкнетесь с проблемой , как это, делать все возможное , чтобы выяснить это самостоятельно - это, как вы научитесь программировать, потому что программирование выясняя вещи , как это. Приходите в ТАК, когда то, что вы выяснили, не работает.
Показать ещё 2 комментария
1

Я предполагаю, что метод 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())));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню