我需要程序的输出为10" *"符号,然后每个后续行是一个较少的星,直到只有一个。我需要使用循环来完成此操作。 我可以添加星星,但不能减去它们。请看看我的计划,看看你是否可以提供帮助。
public static void main(String[] args)
{
int count;
String stars;
stars = "**********";
String star = "*";
System.out.println(stars);
for (count = 10; 0 < count;)
{
stars = (stars - star);
System.out.println(stars);
count--;
}
}
答案 0 :(得分:1)
你不能String - String
。您可以使用String.substring
stars = stars .substring(0, stars .length() - 1);
System.out.println(stars);
注意编写for
循环的正确方法是:
for(initialization; Boolean_expression; update)
{
//Statements
}
因此,您应将for
循环编写为:
for (count = 10; 0 < count; count--)
{
stars = stars .substring(0, stars .length() - 1);
System.out.println(stars);
}
答案 1 :(得分:0)
试试这个,
stars = (stars.replaceFirst("\\*", ""));
而不是
stars = (stars - star);
答案 2 :(得分:0)
for(int i =10;i>0;i--){
for(int j=i;j>0;j--)
System.out.print('*');
System.out.print('\n');//exit main loop
}
答案 3 :(得分:0)
一种方法可能是在每个行的循环中打印星号,而不需要在整个过程中保持字符串:
for (count = 10; 0 < count; --count) {
for (int i = 0; i < count; ++i) {
System.out.print("*");
}
System.out.println();
}
如果你坚持在程序执行过程中保留字符串,我建议不要使用String
,而是使用StringBuilder
:
StringBuilder stars = new StringBuilder("**********");
while (stars.length() > 0) {
System.out.println(stars);
stars.setLength(stars.length() - 1);
}