2011-09-10 213 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)); 

     } 
    } 
}