java - 每次循环减少字符串中的空格

标签 java

我正在尝试在同一行上打印出 2 个用 * 制成的形状。 最终结果必须如下所示

//  * * * * *             *  
//  * * * * *            * *  
//  * * * * *           * * *
//  * * * * *          * * * *

到目前为止,我的代码有效,但我不确定如何减少每个循环的形状之间的间距。

当前代码:

String rectangleLine = "* * * * *";
int x = 1;
    for(int a = 0; a < 4; a++){
    String repeated = new String(new char[x]).replace("\0", "* ");        
    String line = rectangleLine + "             " + repeated; 
    System.out.println(line);
    x++;
}

当前结果是:

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

我如何减少每个循环的空间?

最佳答案

试试这个

int spaces = 13;
String stars = "*";
for(int i = 1;i<=4;i++){
    System.out.print("* * * * *");
    for(int j=1;j<=spaces;j++){
        System.out.print(" ");
    }
    spaces--;
    System.out.println(stars);
    stars+=" *";
}

关于java - 每次循环减少字符串中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43962654/

相关文章:

java - 以同样的方式对两个列表进行排序

java - 使用 java 写入 Mac 和 Windows 文件

java - 如何知道 jdbc 连接为何无效

Java Web 应用程序,可以将任意文件的内容流式传输到浏览器(live tail)

java - 保存Java配置信息的最佳位置

java - 程序在编译器中运行良好,但在 jar 中运行不佳(Java)

java - 不带修剪的自由标记列表

java - Spring Cloud : How to use Feign without Ribbon

java - 关于二维数组

java - 无法捕获有关音频剪辑的异常