多次打印字符

时间:2014-12-05 18:49:18

标签: java string character

如何在一行中多次打印字符?这意味着我不能使用循环。

我试图多次打印" _"

我尝试过这种方法,但它无法正常工作:

System.out.println (" _" , s);

s是变量。

5 个答案:

答案 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()))