java system.out.printf 格式数字舍入和空格问题在一起

标签 java arrays

public class Solution {    
    public static void main(String[] args) {
        String[] languages = { "java", "cpp", "python" };
        int[] values = { 100, 65, 60 };

        for (int i = 0; i < 3; i++) {
            System.out.printf("%-5s %03d %n", languages[i], values[i]);
            //Complete this line
        }
    }
}

我得到的输出

java 100
cpp 65
python 50

期望的输出

java           100 
cpp            065 
python         050 

最佳答案

您获得的代码与您显示的输出不匹配 - 它已经几乎正确了。它提出:

java  100 
cpp   065 
python 060

这里唯一的问题是你将名称右填充到至少 5 个字符......但 python 有 6 个字符。因此,您只需增加格式字符串中的 5 即可。例如:

System.out.printf("%-10s %03d %n", languages[i], values[i]);

另外,您的评论表明您不知道格式字符串的每个位的作用。您应该阅读Formatter仔细记录。例如,%-10s中的-是一个标志,其含义是“结果将左对齐”。

关于java system.out.printf 格式数字舍入和空格问题在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32004382/

相关文章:

python - 尝试通过比较两个数组来计算误差

java - 从数组调用方法

java - 如何获取XSSFSimpleShape对象的背景颜色?

Java - 返回数组中的多个字符串

java - 用括号分割字符串,用括号分组,java

java - 如何实时查看绘制的线条。 Java Swing

php - 我可以将一个数组或字符串分成多个变量吗?

python - 非常奇怪的 numpy 数组浮点行为

java - JPanel - 网格布局

java - 将字段/变量记录到 Web 应用程序中的文件中