用于循环生成字符模式

时间:2017-01-06 23:52:30

标签: java

我试图在java中使用for循环生成以下模式。

"+-*+-*+-*+" and "+++***------***+++"

我不知道如何才能产生最后的" +"在模式的最后。

我目前的代码如下:

int j;   
for(j=0;j<3;++j) {
        System.out.print("+-*");
}    
for(j=0;j<2;++j) {
        System.out.print("+++***---");
}

如何打印第二个图案的前半部分并反转它以产生上面的图案?

2 个答案:

答案 0 :(得分:0)

在第一个字符串&#34; + - *&#34;中的一个小观察只有这3个字符或字符串重复,你可以简单地使用模数并解决它

您可以这样做:

String pattern1 = "+-*";
for(int i=0; i < lengthOfPattern; i++){
     System.out.print(pattern1.charAt(i%3));
}

对于第二种模式,你可以看到,首先你是打印&#34; +++ *** ---&#34;然后交替反转它。而Iguess这将继续下去。再次

String pattern2 = "+++***---";
for(int i = 0; i < numberOfTimes; i++){
    if(i%2==1){
        System.out.print(pattern2);
    }else{
        System.out.print(new StringBuilder(pattern2).reverse().toString());
    }
}

答案 1 :(得分:-2)

for (int i = 0; i < 3; ++i)
    System.out.print("+-*");
System.out.print('+');
String    s = "+*-*+";
for (int i = 0; s[i]; ++i)
    for (int j = 0; j < 3; ++j)
        System.out.print(s[i]);
也许这样的事情 (我没有测试这段代码)