我正在使用Java 8,我需要获取以下输出:
XXXXX
XXXX
XXX
XX
X
其中“ X”是字符串。
我写了一个简单的代码:
String s = new String ("X");
int j = 5;
for (int i = 0; i<5; i--)
{
System.out.println(s);
j--;
if (j < 1)
break;
自然地,得到这个:
X
X
X
X
X
我知道我需要以某种方式使Java重复打印字符串i次(在为我分配的循环中),但是不知道如何重复(无论重复还是\ i都不起作用)。 最好的方法是什么? 谢谢!
答案 0 :(得分:4)
您需要做的是:
final String s = "X";
for (int i = 5; i > 0; i--) {
for (int j = 0; j < i; j++) {
System.out.print(s);
}
System.out.println();
}
输出:
XXXXX
XXXX
XXX
XX
X
答案 1 :(得分:1)
您可以在while
内使用for
循环
String s = "X";
for (int i = 5; i > 0; i--) {
int j=0;
while(i>j++)
System.out.print(s);
System.out.println();
}
答案 2 :(得分:0)
尝试两个内部循环:
public static void main(String[] args) {
final String s = "X";
IntStream.iterate(5, operand -> operand - 1)
.limit(5)
.forEach(value -> {
IntStream.range(0, value)
.forEach(val2 -> System.out.print(s));
System.out.println();
});
}
使用Java 8流的另一种解决方案
7fc00000
答案 3 :(得分:0)
您可以使用递归打印操作来实现此目的而无需循环。
import java.util.Collections;
public class Test {
public static void main(final String[] args) {
recursiveTriangle(10);
}
public static void recursiveTriangle(final int length) {
if (length <= 0 ) {
return;
}
System.out.println(String.join("", Collections.nCopies(length, "X")));
recursiveTriangle(length-1);
}
}
答案 4 :(得分:0)
concat这是另一个选择:
String s = "";
for (int i = 5; i>0; i--) {
String s1 = "";
for (int j = i; j > 0; j--){
s1 += s.concat("X");
}
System.out.println(s1);
}