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/