Как делить строку

251
30 декабря 2021, 22:00

Задача: считываю файл и у меня там сплошной текст из цифр, пример:

1008905760101181870310118170851008875955100886887710088903191008885

И это малая часть, мне нужно, чтобы каждые 10 символов сохранялись в массиве или коллекции. Как это сделать?

Чтобы в конечном итоге выглядело вот так для одной из ячейки массива: 1008905760

Answer 1
String toParse = "1234567890123456789012345678901234567890123";
if(!toParse.isEmpty()) {
    int length = (int) Math.ceil(toParse.length() / 10);
    String[] result = new String[length];
    for(int i = 0; i < length - 1; i++) {
        result[i] = toParse.substring(i * 10, (i + 1) * 10);
    }
    result[length - 1] = toParse.substring(length * 10, toParse.length());
    for(String i : result){
        System.out.println(i);
    }
}

Вывод следующий:

1234567890
1234567890
1234567890
123

Answer 2
package com.example.split;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
public class FileSpliterator {
    private static final int SPLIT_DIGITS_AMOUNT = 10;
    public static List<Integer> getNumbers(String filePath) throws IOException {
        try (Reader reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), StandardCharsets.US_ASCII))) {
            List<Integer> list = new ArrayList<>();
            StringBuilder sb = new StringBuilder(SPLIT_DIGITS_AMOUNT);
            int i = 1;
            while (true) {
                int ch = reader.read();
                if (ch == -1) {
                    if (sb.length() > 0) {
                        list.add(Integer.valueOf(sb.toString()));
                    }
                    break;
                }
                sb.append((char) ch);
                if (i % SPLIT_DIGITS_AMOUNT == 0) {
                    list.add(Integer.valueOf(sb.toString()));
                    sb.setLength(0);
                }
                i++;
            }
            return list;
        }
    }
}
READ ALSO
Pattern Prototype(Не видит метод)

Pattern Prototype(Не видит метод)

Не виден метод setNameЧто делать, не пойму, все паблик

173
Поиск файлов в каталогах

Поиск файлов в каталогах

Задача: найти файлы в каталоге и подкаталогах, и сохранить в папку result

156
Отказоустойчивое логирование log4j

Отказоустойчивое логирование log4j

Логирую приложение через log4j2, аппендером выступает logstashИногда из-за сетевых проблем на машине с logstash или с наплывом логов на него, он отказывается...

164