2014-12-05 75 views
0

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

这个方法我试过,但它不工作:

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

s是可变的。

+6

'System.out.println('_____');';-) – ceejayoz 2014-12-05 18:51:12

+0

养成检查API的习惯。我在[System.out的Java 7 API文档](http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#out)中没有看到此方法的示例。 – jdv 2014-12-05 18:54:15

+0

“这意味着我不能使用循环。”怎么会这样? – user4235730 2014-12-05 19:03:56

回答

2

您可以在System.out.print(" _");的同一行中打印,以便您可以使用循环。 print而不是println不会追加新的行字符。

for (int i=0; i<5; i++){ 
    System.out.print(" _"); 
} 

将打印:_ _ _ _ _

+1

该帖子状态没有循环 – Growler 2014-12-05 18:59:41

+1

我明白,没有循环条件是需要在同一行打印(println不允许它,但打印)的后果。 – 2014-12-05 19:01:21

+1

非常感谢,它工作完美!^_^ – Econy3 2014-12-08 18:29:33

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. 
+0

当窃取和修改他人的答案时,更新评论是明智的。递归解决方案的第2行应该有注释'// 5是最大限制' – adamdc78 2014-12-05 18:56:13

+0

System.out。的println(_);是不是一个有效的Java语句:) – jdv 2014-12-05 18:56:24

+0

@ adamdc78编辑上面 – Growler 2014-12-05 18:57:25

3

如果你可以使用外部库,StringUtils.repeat听起来您的最佳选择:

int s = 5; 
System.out.println(StringUtils.repeat('_', s)); 

编辑:
要回答在评论的问题 - 在char要重复和数量 - StringUtils.repeat有两个参数你想要它的时间,并返回由该重复组成的String。所以,在上面的例子中,它将返回一个由5个下划线组成的字符串,_____

+0

你能解释我如何使用StringUtils.repeat? – Econy3 2014-12-09 17:54:35

+0

@ Econy3编辑我的答案与信息 – Mureinik 2014-12-09 18:31:15

2

您可以使用新的Stream API来实现这一点。幕后总是有迭代,但这是一种可能的实现。

Stream.generate(() -> " _").limit(5).forEach(System.out::print); // _ _ _ _ _ 
+0

流API。它永远不会令我惊叹。 – 2014-12-05 19:03:49

+1

...或者也是'IntStream.range(0,5).forEach(i - > System.out.print(“_”));' – 2016-11-01 21:01:07

0

一次调用打印/的println和使用变量 “s” -

的System.out.println(Stream.generate(() - > “_”)的限制(S) .collect(Collectors.joining()))