在python中,打印
******
*****
****
***
**
*
*
**
***
****
*****
******
我们会编写以下代码:
for e in range (11,0,-1):
print((11-e) * ' ' + e * '*')
print ('')
for g in range (11,0,-1):
print(g * ' ' + (11-g) * '*')
我的问题是,这可以用Java完成吗?
Java不允许你乘以字符串(int)次数,例如4 * " "
,那么我们如何在java中实现它?
答案 0 :(得分:1)
这不简洁:
// top half..
for (int i=11;i>0;i--){
for (int a=0;a<11-i;a++){
System.out.print(' ');
}
for (int b=0;b<i;b++){
System.out.print('*');
}
System.out.println();
}
答案 1 :(得分:1)
public class Loops {
public static void main(String[] args) {
//print first half
for(int i = 0; i < 6; i++) {
printChar(' ', i);
printChar('*', 6-i);
System.out.println();
}
//print second half
for(int i = 0; i <= 6; i++) {
printChar(' ', 6-i);
printChar('*', i);
System.out.println();
}
System.out.println();
}
//helper function to print a char n specific times
private static void printChar(char ch, int n) {
for(int i = 0; i < n; i++) {
System.out.print(ch);
}
}
}
答案 2 :(得分:0)
要在Java中多次运行字符串,可以使用for循环。
for(int i = 0; i < yournum; i++){
System.out.print(" ");
}
yournum
是您想要的空格数
答案 3 :(得分:0)
这是一个Core Java解决方案,它可以使用单个for
循环生成整个输出:
String before = "", after = "";
for (int i=0; i < 6; ++i) {
String starRepeat = String.format("%0" + (6-i) + "d", 0).replace("0", "*");
String spaceRepeat = (i>0) ? String.format("%0" + i + "d", 0).replace("0", " ") : "";
String line = spaceRepeat + starRepeat;
if (i == 0) {
before = line;
after = line;
}
else {
before = before + "\n" + line;
after = line + "\n" + after;
}
}
System.out.println(before + "\n\n" + after);
<强>输出:强>
******
*****
****
***
**
*
*
**
***
****
*****
******
答案 4 :(得分:0)
IntStream.range(0, 6).forEach(i -> {
IntStream.range(0, i)
.forEach(t -> System.out.print(" "));
IntStream.range(0, 6 - i)
.forEach(t -> System.out.print("*"));
System.out.println();
});
在Java8
中,您可以使用Stream
执行相同操作。使用IntStream
与range
和println
答案 5 :(得分:0)
如果您愿意使用:Commons Lang StringUtils ...... 使用Commons Lang StringUtils.repeat()可以帮助你重复一个字符串...... 举个例子:
StringUtils.repeat("*", 3) //produces ***
答案 6 :(得分:-2)
您可以在字符串上添加要打印的消息,然后按System.out.println(message);
打印字符串值