java:避免在输出的最后一行打印新行

时间:2018-07-01 13:54:50

标签: java formatting

我正在打印文件中长数字之间的差异,并在循环中列出结果。但是我不想为最后打印出的结果打印换行符。

下面是打印结果的代码:

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 :(得分:0)

您可以在打印新行之前检查是否还有剩余输入要处理

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
   }
}

答案 1 :(得分:0)

使用System.out.println(line)打印第一行,并使用System.out.print("\n" + line)打印其余行。