2011-09-10 75 views
1

我在JAVA中做了一些初学者任务。随着对我要去只需添加简单的字符,如*,以这样的字符串,创建两个简单的三角形的帮助:将字符添加到字符串

* 
** 
*** 
**** 
***** 

***** 
**** 
*** 
** 
* 

我已经完成了第一个三角形与下面的代码,也许它可以以更简单/更聪明的方式完成?但我不确定如何创建以五*开头的另一个三角形?

public class Test { 

public static void main(String[] args) { 

String word = ""; 

     for (int x=1; x<5+1; x++){ 
     word += "*"; 

     System.out.println(word); 

     } 
} 
} 
+0

请问你的问题的标题涉及到你的问题的身体吗? –

回答

1

您可以在不使用String变量的情况下完成整个工作。对每一行使用一个循环,对当前行中的星号数量使用嵌套循环。当你在current行你有6 - current星号。示例代码如下:

for (int row = 1; row <= 5; row++) { 
    for (int i = 1; i <= 6 - row; i++) { 
     System.out.print("*"); 
    } 

    System.out.println(); 
} 
+0

-1为他人做作业... –

+0

@Oli - 这个网站的问题和答案。 OP显示了一些努力,我帮助了他。这个问题不是'gimme teh codez'类型。我认为你得到的太严重了...... –

+0

这很公平。但是通过加入一些解释,你的答案会更好。 (我会删除-1,但我不能直到你再次编辑你的问题!) –

0

您可以创建这样的“递减”循环计数器:

for (int i = 5; i > 0; i--) { 
    // Do something 
} 

在循环中,你可以使用另一个循环创建的i明星字符串,然后打印它。

0

提示:使用相同的字符串word,并要求substring(int,int)。请记住将返回值收集到旧字符串本身。你需要一个循环,直到字符串的长度为。

0

一种可能是使用子方法来打印一个更长字符串的一部分:

public class Test { 

    public static void main(String[] args) { 

     String stars = "*****"; 

     for (int x=4; x>=0; x--){ 

      System.out.println(stars.substring(x)); 

     } 
    } 
}