Java: избегать печати новой строки для последней строки вывода - PullRequest
0 голосов
/ 01 июля 2018

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

Вот код, который печатает результаты:

public static void main(String[] args) {

        Scanner sc;
        long a = 0, b = 0;
        try {
            Scanner input = new Scanner(System.in);

            File file = new File(input.nextLine());

            input = new Scanner(file);

            while (input.hasNextLine()) {
                String line = input.nextLine();
                String split[] = line.split("\\s+");
                a = Long.parseLong(split[0]);
                b = Long.parseLong(split[1]);
                System.out.println(Math.abs(a-b));
            }
            input.close();

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            System.out.println(e.getMessage());
        }

Вывод, который я получаю сейчас:

2
71293781685339
12345677654320

и в конце есть новая строка. Как избежать новой строки при печати последнего результата? Есть идеи?

Ответы [ 2 ]

0 голосов
/ 01 июля 2018

Напечатайте первую строку, используя System.out.println(line), и напечатайте остальные строки, используя System.out.print("\n" + line).

0 голосов
/ 01 июля 2018

Вы можете проверить, осталось ли еще ввод для обработки, перед печатью новой строки

while (input.hasNextLine()) {
    String line = input.nextLine();
    String split[] = line.split("\\s+");
    a = Long.parseLong(split[0]);
    b = Long.parseLong(split[1]);
    System.out.print(Math.abs(a-b)); //Print without a newline

   if (input.hasNextLine()) {
       System.out.println();//Print new line if there is more input left
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...