int Array Stream System.out.print方法在打印Java8时在末尾添加%符号

问题描述 投票:0回答:1

尝试使用 Stream API forEach 方法将原始类型 int 数组元素打印到控制台时遇到问题,使用 System.out.print 方法将额外的 % 符号添加到控制台输出中。

请在下面找到我的主要方法 -

 public static void main(String[] args) {       
        int[] A = {1, 2, 3, 4, 5, 6, 7, 8};

        Arrays.stream(A).forEach(s -> System.out.print(s));
    }

输出- 12345678%

预期输出 - 12345678

我想知道为什么在打印数组的末尾添加一个额外的%符号。我正在使用 MacOS。尝试使用 VSCode 和终端 javac 和 java 命令,都给出相同的问题。

注意:System.out.println 无需添加任何 % 符号即可正常工作。

相关帖子(没有满意的答案): 在 System.out.print(); 后删除百分号;

java foreach java-8 java-stream
1个回答
0
投票

这就是当输出末尾没有换行符时 zsh 的行为方式。您正在使用

print
,与
println
不同,它不会打印尾随新行。另请参阅 Unix & Linux Stack Exchange 上的这篇文章

您将看到与

echo -n
相同的行为(
echo
,但没有尾随新行):

sweeper@sweepers-MacBook-Pro ~ % echo -n Foo
Foo% 

如果使用

bash
,则没有
%
,但请注意,缺少新行会使下一个提示与输出保持在同一行。

bash-3.2$ echo -n Foo
Foobash-3.2$ 

您可以在代码后面添加另一个

System.out.println()
,这样 zsh 上就不会出现
%

© www.soinside.com 2019 - 2024. All rights reserved.