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

Posted

技术标签:

【中文标题】如何在 Java 中的新行上打印多个整数【英文标题】:How to print multiple integers on new lines in Java 【发布时间】:2017-08-26 13:19:24 【问题描述】:

我正在研究如何通过输入 only one 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);
      

【问题讨论】:

要在此处格式化,您只需在键盘上使用“空格键”;) 尝试使用System.out.println(a + "\n" + b + "\n" + c + "\n" + d); 这正是我要找的 YCF_L,我该如何投票给你,哈哈是的,我使用空间来格式化代码,但我需要在每行每次都使用空间? 只需投票并接受其中一个答案,它们还包含@YCF_L 的解决方案。您可以对 cme​​ts 进行投票,但这并不影响他的声誉。 接受是什么意思,我该怎么做?哦,我想..好的,谢谢:) 【参考方案1】:

您可以使用 '\n' 在 Java 中创建一个新行,因此您的代码如下所示:

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

这会将它们打印在新的行上。

【讨论】:

【参考方案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);

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

您可以查看它“等效”到以下代码:

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

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

【讨论】:

【参考方案3】:

你可以用几种方法来做:

这将打印变量和每个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)

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

不要只使用"\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);

【讨论】:

非常感谢,第一种方法似乎很聪明,没有使用“\n”,但我现在不太明白,我会阅读更多关于它的内容,但看起来这是最好的方法! @GeorgiMichev 看看其他答案,他们详细解释了方法。 为什么不 forEachOrdered() ? @PatrickParker 这将对并行流产生影响。一般来说,forEachOrdered 将是正确的使用。在这种情况下,我知道它绝对不是并行流。如果我使用forEachOrdered,除了输入一些额外的字符之外不会受到任何惩罚。【参考方案6】:

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

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

【讨论】:

【参考方案7】:

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

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

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

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

【讨论】:

【参考方案8】:

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

【讨论】:

【参考方案9】:

java中有不同的打印语句

1.println

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

2.打印

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 方法中将使用哪种类型的数据。 谢谢。


【讨论】:

以上是关于如何在 Java 中的新行上打印多个整数的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE如何在新行中打印文本

如何划分索引并使用 onclick 事件将其打印在 JavaScript 和 HTML 的新行上

如何将字符串中的多个数字转换为整数

如何替换已经在 J​​ava 中打印在屏幕上的文本?

如何在控制台中向已打印的表中添加新行?

如何在java中的一列ireport 4.5中显示多个名称