如何在Java中的新行上打印多个整数

时间:2017-08-26 13:19:24

标签: java output text-formatting

我想通过输入只有一个 System.out.println来确定如何打印 4个整数的结果(我猜对于程序员而言,打字越少越好。

预期产出:

43 
1 
19 
13

我的代码:

class JavaApplication1 {
     public static void main(String[] args) {
         int a,b,c,d;
         a = -5 + 8 * 6;
         b = (55+9) % 9;
         c = 20 + -3*5 / 8;
         d = 5 + 15 / 3 * 2 - 8 % 3 ;

         System.out.println(a);
         System.out.println(b);
         System.out.println(c);
         System.out.println(d);
    }  
}

9 个答案:

答案 0 :(得分:3)

您可以使用' \ n'在Java中创建一个新行,所以你的代码看起来像这样:

System.out.println(a + "\n" + b + "\n" + c + "\n" + d);

这将在新行上打印出来。

答案 1 :(得分:2)

  

只需输入'system.out.println',就可以在单独的行上打印4个整数的结果。

非常简单,您需要在要打印的文本中添加换行符。在大多数机器上,这由特殊字符\n表示。

String output = a + "\n"
    + b + "\n"
    + c + "\n"
    + d;
System.out.println(output);

然而,平台无关方式与方法System.lineSeparator()documentation)返回的方式相同。像:

String lineSeparator = System.lineSeparator();
String output = a + lineSeparator
    + b + lineSeparator
    + c + lineSeparator
    + d;
System.out.println(output);

或者,您可以使用System.out.printf方法(documentation),它代表“ print formatted ”。它具有参数%n,可以在内部使用System.lineSeparator()创建新行。

System.out.printf("%d%n%d%n%d%n%d%n", a, b, c, d);

%dint之类的数字的占位符。它用后面列出的参数替换所有占位符。

以下是该方法接受的所有参数的完整列表:Formatter-Syntax

如果您使用Streams和Lambdas查找 Java 8 解决方案,那么您可以使用此代码(documentation):

IntStream.of(a, b, c, d).forEachOrdered(System.out::println);

首先创建一个(在这种情况下类似于容器)保存变量,然后在每个上调用打印方法 它的元素。请注意,代码本身现在调用打印方法 4次一次。但它看起来非常紧凑。

您可以在以下代码中查看“等效”:

int[] values = new int[]{a, b, c, d};

for (int value : values) {
    System.out.println(value);
}

答案 2 :(得分:1)

你可以通过以下几种方式来做我:

这将打印变量,并在每个new-line char

之间打印
System.out.println(a + "\n" + b + "\n" + c + "\n" + d);

您还可以使用方法参考和Arrays,这将从由4个变量组成的数组中创建动态列表,并将System.out::println应用于每个变量:

Arrays.asList(a,b,c,d).forEach(System.out::println);

IntStream.of(a,b,c,d).forEach(System.out::println);

使用基本的for each loop也可以是一种方式:

for (int i : new int[]{a, b, c, d})
     System.out.println(i);

同时使用format打印:

System.out.printf("%d%n%d%n%d%n%d%n",a,b,c,d)

答案 3 :(得分:1)

不要只使用"\n"作为换行符。这是依赖于平台的,如果你在Windows记事本上查看包含由"\n"分隔的行的输出,你将看不到你的期望。

请改用:

System.out.printf("%s%n%s%n%s%n%s%n", a, b, c, d);

可替换地:

IntStream.of(a, b, c, d).forEach(System.out::println);

答案 4 :(得分:1)

您需要使用换行符。在java中它是\n
要使用你拥有的东西打印它们,它将是:

System.out.println(a + "\n" + b + "\n" + c + "\n" + d);

答案 5 :(得分:1)

使用System.out.format,您可以使用%n格式输出与系统相关的行分隔符;您还可以在格式字符串中添加更多数字格式。

 System.out.format("%d%n%d%n%d%n%d%n", a, b, c, d);

答案 6 :(得分:1)

这满足了您对System.out.println的单个调用的声明要求,使用独立于平台的行分隔符,并避免重复键入相同的并置操作:

   System.out.println(IntStream.of(a,b,c,d).mapToObj(Integer::toString)
           .collect(Collectors.joining(System.lineSeparator())));

这是一个更通用的版本,适用于任何对象,不仅仅是ints:

   System.out.println(Stream.of(a,b,c,d).map(Object::toString)
           .collect(Collectors.joining(System.lineSeparator())));

答案 7 :(得分:0)

您也可以选择使用System.out.printf("%d%n%d%n%d%n%d%n",a,b,c,d)

答案 8 :(得分:0)

java中有不同的打印语句

1.println

System.out.println(1+"\n"+2+"\n"+3+"\n"+4);

2.print

System.out.print("\n"+1); System.out.print("\n"+2); System.out.print("\n"+3); System.out.print("\n"+4);

3.printf

System.out.printf("%d%n%d%n%d%n%d%n",1,2,3,4);

其中%d和%n称为格式说明符,它们指定在printf方法中将使用哪种数据类型。 谢谢。