Задача: считываю файл и у меня там сплошной текст из цифр, пример:
1008905760101181870310118170851008875955100886887710088903191008885
И это малая часть, мне нужно, чтобы каждые 10 символов сохранялись в массиве или коллекции. Как это сделать?
Чтобы в конечном итоге выглядело вот так для одной из ячейки массива: 1008905760
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
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;
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Задача: найти файлы в каталоге и подкаталогах, и сохранить в папку result
Логирую приложение через log4j2, аппендером выступает logstashИногда из-за сетевых проблем на машине с logstash или с наплывом логов на него, он отказывается...