减去循环中的字符

时间:2014-04-03 01:41:49

标签: java loops for-loop

我需要程序的输出为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--;
    }
}

4 个答案:

答案 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);
}