Форматирование текста в блокноте

Добрый день подскажите как можно улучшить код. Задача из текстового файла выкинуть всю информацию кроме координат и записать их в новый файл. Моя реализация представлена ниже

public class CleanBloknot {
public static void main(String[] args) throws IOException {
    ArrayList<String> text_old = new ArrayList<>();
    ArrayList<String> text_new = new ArrayList<>();
    ArrayList<String> text_new_end = new ArrayList<>();
    final String stroka_new = System.getProperty("line.separator");
    File file = new File("D:\\cordinate.txt");
    FileInputStream loadFile = new FileInputStream(file);
    BufferedReader reader = new BufferedReader(new InputStreamReader(loadFile, "Cp1251"));
    String line = reader.readLine();
    while (line != null) {
        line = reader.readLine();
        text_old.add(line);
    }
    text_new.add(text_old.get(2));
    for (int i = 8; i < text_old.size(); i = i + 6) {
        text_new.add(text_old.get(i));
    }
    System.out.println(text_new);
    for (int i = 0; i < text_new.size(); i++) {
        for (int j = 41; j < 72; j++) {
            text_new.get(i).charAt(j);
            text_new_end.add(String.valueOf(text_new.get(i).charAt(j)));
        }
    }
    System.out.println(text_new_end.size());
    try (FileWriter writer = new FileWriter("D:\\cordinate_formatirovan.txt")) {
        for (int j = 0; j < text_new_end.size() / 31; j++) {
            int c = 31 * j;
            for (int i = 0 + c; i < 30 + c; i++) {
                writer.write(text_new_end.get(i));
            }
            writer.write(text_new_end.get(30 + c) + stroka_new);
        }
        writer.flush();
    } catch (IOException ex) {
        System.out.println(ex.getMessage());
    }

}

}

В блокноте изначально храниться информация в формате введите сюда описание изображения

А нужно

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Arty Mart

Как уже было описано выше, проще всего это сделать через регулятные выражения, специальный инструмент, который может из строки изымать или заменять определенные символы по шаблону. Прочитайте более подробно про методы replaceAll(), matchers() и split(). Вот так получилась у меня: Скрин с примером

Данная регулярка идет вместе с группировкой. Она выберет все числа перед которыми находится 1 или более пробелов и в составе которых находиться '.' Как она сработает в вашем документе, зависит от многих вещей. Лучше всего, подправить ее по мере необходимости. Сделать это можно на сайте regex101.

→ Ссылка