Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的打印模式_Java - Fatal编程技术网

java中的打印模式

java中的打印模式,java,Java,我想用java创建一个类似这样的模式-> * ** *** **** ***** **** *** ** * (星星的数量取决于用户输入的数字。) 我知道上半部分(递增顺序),但请告诉我如何制作下半部分(递减顺序)。 谢谢 这是我的第一部分代码-> int y = Integer.parseInt(jTextField1.getText()); for (x = 0; x <= y; x++) { jTextField2.setText(jTextField2.getText()

我想用java创建一个类似这样的模式->

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

我知道上半部分(递增顺序),但请告诉我如何制作下半部分(递减顺序)。 谢谢

这是我的第一部分代码->

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

对于(x=0;x,您可以使用以下内容:

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");
}
int y=Integer.parseInt(jTextField1.getText());
对于(x=y;x>=0;x--){
字符串s=“”;
对于(int i=0;i
请注意,如果性能很重要,您可以使用


我假设您不想使用外部库。番石榴将是解决您问题的更好的方法。

Hlo.Buddy..试试下面的代码

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");
}
int y=Integer.parseInt(jTextField1.getText());
对于(x=0,z=0;x

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

试试这个代码,我希望这将是有用的

    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;
        }
    }
intv=1;
int-totStars=20;
对于(int i=1;i>=0;i+=v){
对于(int j=1;j=1){
v=-1;
}
}
如果您可以使用,您可以使用以下代码:

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");
}
int y=Integer.parseInt(jTextField1.getText());
对于(x=0;x=0;x--){
字符串s=字符串。重复(“*”,x);
jTextArea1.追加(s+“\n”);
}

此解决方案更简单,但它确实需要一个外部库

这里是一个递归解决方案,值得花时间来了解它是如何工作的:

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 + "*");
    }
}

倒计时而不是倒计时?嗨..在上面的例子中..y值是5?