如何打印新的生产线的多个整数Java中
我盘算如何打印的4个整数在单独的行通过键入只有一个System.out.println
结果(我猜的输入量,是程序员更好)。如何打印新的生产线的多个整数Java中
预期输出:
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);
}
}
你可以做我有几种方法:
这将打印变量,每个new-line char
之间:
System.out.println(a + "\n" + b + "\n" + c + "\n" + d);
你也可以用meth OD参考和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)
您可以使用 '\ n' 在Java中创建一个新的生产线,所以你的代码应该是这样的:
System.out.println(a + "\n" + b + "\n" + c + "\n" + d);
这将在新行中打印出来。
通过只输入一次打印4个整数的结果'system.out.println'。
很简单,您需要在您要打印的文本中添加一个换行字符。在大多数机器上,这由特殊字符\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),它代表 “打印格式”。它具有参数%n
,它创建一个新行,内部也使用System.lineSeparator()
。
System.out.printf("%d%n%d%n%d%n%d%n", a, b, c, d);
的%d
是许多像int
的占位符。它用后面列出的参数替换所有占位符。
这里是方法接受的所有参数的完整列表:Formatter-Syntax
如果你看一下使用流和Lambda表达式一个的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);
}
不要只用"\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只要看看其他答案,他们详细解释了方法。 – Zabuza
为什么不是forEachOrdered()? –
您将要使用的换行符。在java中它是\n
要使用你所拥有的打印出来,这将是:
System.out.println(a + "\n" + b + "\n" + c + "\n" + d);
随着System.out.format
可以输出使用%n
格式取决于系统的行分隔符;您还可以将其他数字格式添加到格式字符串中。
System.out.format("%d%n%d%n%d%n%d%n", a, b, c, d);
您也可以选择使用System.out.printf("%d%n%d%n%d%n%d%n",a,b,c,d)
这满足单一的通话您所陈述的要求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())));
要在此格式化,您可以在键盘上使用“空格键”;) – azro
尝试使用'System.out.println(a +“\ n”+ b +“\ n”+ c +“\ n” + d);' –
这就是我正在寻找YCF_L,我如何投票给你哈哈?是的,我用空间来格式化代码,但我需要在每一行使用空间每次? –