如何在一行中多次打印字符?这意味着我不能使用循环。
我试图多次打印" _"
。
我尝试过这种方法,但它无法正常工作:
System.out.println (" _" , s);
s
是变量。
答案 0 :(得分:5)
如果您可以使用外部库,StringUtils.repeat
听起来非常适合您:
int s = 5;
System.out.println(StringUtils.repeat('_', s));
编辑:
要回答评论中的问题 - StringUtils.repeat
需要两个参数 - 您要重复的char
和您想要的次数,并返回由该重复组成的String
。因此,在上面的示例中,它将返回一个包含五个下划线的字符串_____
。
答案 1 :(得分:3)
您可以使用System.out.print(" _");
在同一行打印,这样可以使用循环。 print
代替println
不会附加换行符。
for (int i=0; i<5; i++){
System.out.print(" _");
}
将打印:_ _ _ _ _
。
答案 2 :(得分:3)
您可以使用新的Stream API来实现这一目标。幕后总是有一个迭代,但这是一种可能的实现。
Stream.generate(() -> " _").limit(5).forEach(System.out::print); // _ _ _ _ _
答案 3 :(得分:0)
没有像您发布的那样的快捷方式......
你是什么意思“在一条线上”?
如果在一行代码中......请参阅Mureinik的回答
如果在一行中打印“_”:
相反:
Print 1 to 10 without any loop in java
System.out.print("_");
System.out.print("_");
System.out.print("_");
System.out.print("_");
System.out.print("_");
或者
public void recursiveMe(int n) {
if(n <= 5) {// 5 is the max limit
System.out.print("_");//print n
recursiveMe(n+1);//call recursiveMe with n=n+1
}
}
recursiveMe(1); // call the function with 1.
答案 4 :(得分:0)
一次调用print / println并使用变量“s” -
System.out.println(Stream.generate(() - &gt;“_”)。limit(s).collect(Collectors.joining()))