java - for循环中的字符打印出来的值离值太远

标签 java string netbeans

我对 java 和 for 循环还很陌生。我希望我的代码打印出这个

Andy      **
Kristy    **********
Amy       ***** `

但是我得到的是这个

Andy          **
Kristy          **********
Amy          *****

如何更改我的 for 循环以停止这样的名称间距?谢谢。

public static void drawChart(String name, int age) {
    System.out.print(name);   
    for(int j = 1; j <= 10; j++) {
        System.out.print(" ");
    }

    for (int i=0; i<age; i++) {
        System.out.print("*");    
    }

    System.out.println(" "); 
}

最佳答案

您可以使用 String.format() 实用程序以一定的宽度写入名称。如果名称小于该宽度,它将用空格填充其余部分。诸如此类。

public static void drawChart(String name, int age){
        String nameWithPadding = String.format("%-20s", name);
        System.out.print(nameWithPadding);
        for (int i = 0; i < age; i++)
            System.out.print('*');
        System.out.println();
}

这里,这部分 %-20s 是用 20 个字符写名字。它首先写入名称,然后是空格,直到达到 20 个字符。

关于java - for循环中的字符打印出来的值离值太远,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44352984/

相关文章:

c++ - C++返回字符数组相减的结果

java - Netbeans 设计 View 中的动态按钮

Java SceneBuilder设计单面板

java - 如何在 bean 上提供 @ControllerAdvice 条件?

java - 贾斯珀报告,其中包含世界地图和不同颜色的圆圈,覆盖在不同国家的顶部

java - 突出显示正在单击的图像部分

python - 将不同的列表数据类型连接成字符串

java - 将 Java 字符串转换为时间,而不是日期

netbeans - 在 NetBeans 解压缩 Sonatype 存储库的索引时,是否有办法使系统响应?

java - 尝试创建 EXE 文件时出现 "Unable to create javax script engine for javascript"错误