Тест
Содержание первого файла
3.49
3.50
3.51
-3.49
-3.50
-3.51
Содержание второго файла
3 4 4 -3 -3 -4
Что нужно валидатору?
P.S. Сделал небольшое обновление в одном блоке, чтобы убрать лишний пробел и перенос на следующую строку. Не помогло.
try (PrintWriter writer = new PrintWriter(new FileWriter(file2))) {
StringBuilder s = new StringBuilder();
for(int a : list)
s.append(a).append(" ");
writer.print(s.toString().trim());
} catch (IOException e) {
System.out.println("Ошибка записи второго файла.");
System.exit(1);
}package com.javarush.task.task18.task1820;
/*
Округление чисел
*/
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Solution {
public static void main(String[] args) {
String file1 = "", file2 = "";
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
file1 = reader.readLine();
file2 = reader.readLine();
} catch (IOException e) {
System.out.println("Ошибка считывания имён файлов.");
System.exit(1);
}
List<Integer> list = new ArrayList<>();
try (BufferedReader reader = new BufferedReader(new FileReader(file1))) {
while(reader.ready()) {
String[] parts = reader.readLine().split("\\.");
if(parts[0].contains("-")) {
char[] array = parts[1].toCharArray();
if(array[0] >= '5' && array[1] > '0')
list.add(Integer.parseInt(parts[0]) - 1);
else
list.add(Integer.parseInt(parts[0]));
} else {
char[] array = parts[1].toCharArray();
if(array[0] >= '5')
list.add(Integer.parseInt(parts[0]) + 1);
else
list.add(Integer.parseInt(parts[0]));
}
}
} catch (IOException e) {
System.out.println("Ошибка чтения первого файла.");
System.exit(1);
}
try (PrintWriter writer = new PrintWriter(new FileWriter(file2))) {
for(int a : list)
writer.print(a + " ");
} catch (IOException e) {
System.out.println("Ошибка записи второго файла.");
System.exit(1);
}
}
}