Я печатаю разницу между длинными числами из файла и перечисляю результаты в цикле. Но я не хочу печатать новую строку для последнего напечатанного результата.
Вот код, который печатает результаты:
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
и в конце есть новая строка. Как избежать появления новой строки при печати последнего результата? Любые идеи?




Вы можете проверить, есть ли еще ввод для обработки, прежде чем печатать новую строку
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
}
}
Выведите первую строку с помощью System.out.println(line), а остальные строки - с помощью System.out.print("\n" + line).