在java中打印模式

时间:2013-12-22 16:34:55

标签: java

我想在java中创建一个类似于this->

的模式
*
**
***
****
*****
****
***
**
*

(星数取决于用户输入的数字。)

我知道上半场(增加顺序),但请告诉我如何让剩下的一半(减少顺序)。 感谢。

以下是我的第一部分代码 - >

int y = Integer.parseInt(jTextField1.getText());
for (x = 0; x <= y; x++) {
    jTextField2.setText(jTextField2.getText() + "*");
    jTextArea1.append(jTextField2.getText() + "\n");
}

6 个答案:

答案 0 :(得分:0)

你可以使用类似的东西:

int y = Integer.parseInt(jTextField1.getText());
for(x = y; x>=0; x--){
    String s = "";
    for(int i = 0; i < x ; i++) {
         s += "*";
    }
    jTextField2.setText(s);
    jTextArea1.append(jTextField2.getText()+"\n");
}

请注意,如果效果很重要,您可以使用StringBuffer

我假设您不想使用外部库。番石榴Strings.repeat对你的问题更好的解决方案。

答案 1 :(得分:0)

降序

for (x = y; x >= 0; x--) {
    jTextField2.setText(jTextField2.getText() + "*");
    jTextArea1.append(jTextField2.getText() + "\n");
}

答案 2 :(得分:0)

尝试此代码,我希望这将是使用ful

    int v = 1;
    int totStars = 20;

    for (int i = 1; i >= 0; i+=v) {
        for (int j = 1; j <= i; j++) {
            System.out.print("*");
        }
        System.out.println();
        if(i >= totStars){
            v = -1;
        }
    }

答案 3 :(得分:0)

如果您可以使用Guava,则可以使用以下代码:

int y = Integer.parseInt(jTextField1.getText());
for(x = 0; x<=y; x++){
    String s = String.repeat("*", x);
    jTextArea1.append(s+"\n");
}
for(x = y; x>=0; x--){
    String s = String.repeat("*", x);
    jTextArea1.append(s+"\n");
}

此解决方案更直接,但它确实需要外部库

答案 4 :(得分:0)

这是一个递归解决方案,值得花时间弄清楚它是如何工作的:

public void tristar(int n) {
    tristar(n, "");
}

public void tristar(int n, String stars) {
    if (n == 1) {
        System.out.println(stars + "*");
    } else {
        System.out.println(stars + "*");
        tristar(n-1, stars + "*");
        System.out.println(stars + "*");
    }
}

答案 5 :(得分:-1)

HLO。好友..试试这段代码

int y = Integer.parseInt(jTextField1.getText());
for (x = 0,z=0; x <= (y+y-1); x++) {
   if(x<=y){
     z++;
   }else{
    z--;
   }
   for(int i=0;i<=z;i++){
     jTextField2.setText(jTextField2.getText() + "*");
   }
   jTextArea1.append(jTextField2.getText() + "\n");
}

这将打印完整的模式