Задать вопрос
dashabushik1
@dashabushik1

Что нужно изменить, чтобы результат сохранился в текстовый файл как цифры?

Привет!
Условие задачи такое:
Найти в строке наибольшее число цифр, следующих подряд.
цифры нашлись, а вот если результат сохраняю в текстовый файл, то выходит такое:
63bb0f9b05bde523148177.png
Подскажите, как быть?
Предполагаю, что это проблемы с кодировкой. Но стоит UTF-8.

Мой код:
public class Main {

    public static void main(String[] args) throws IOException {
        Path path = Paths.get("./src/main/java/chapter10/variantA/task5/task5.txt");
        String result;
        int maxLength = 0;

        try (BufferedWriter writer = new BufferedWriter(new FileWriter("./src/main/java/chapter10/variantA/task5/outputTask5.txt"))) {
            List<String> lines = Files.readAllLines(path);
            for (String line : lines) {
                Pattern pattern = Pattern.compile("\\d+");
                Matcher matcher = pattern.matcher(line);
                while (matcher.find()) {
                    result = matcher.group();
                    if (result.length() > maxLength) {
                        maxLength = result.length();
                    }
                }
                writer.write(maxLength);
            }
        }
    }
}
  • Вопрос задан
  • 98 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
BufferedWriter.write принимает на вход:
int
String
char[]
и String или char[] с оффсетом и длиной.
Когда вы скармливаете ему int то в файл попадают натурально байты, вы их и видите в текстовом редакторе.
Выглядит не очень человекочитаемо, так что запишите туда лучше строку.
Например, так: writer.write(String.valueOf(maxLength));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы