在每行输出中应该有两列: 第一列包含String,并使用正好15个字符左对齐。 第二列包含整数,以3位数字表示;如果原始输入少于三位,则必须用零填充输出的前导数字。
有人可以解释System.out.printf("%-15s%03d%n", s1, x);
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("================================");
for(int i=0;i<3;i++)
{
String s1=sc.next();
int x=sc.nextInt();
System.out.printf("%-15s%03d%n", s1, x);
}
System.out.println("================================");
}
}
答案 0 :(得分:5)
基本上每个%...
都会被printf
的一个参数所取代。 %
符号之后是格式说明符。
在%-15s
:
-
表示:左对齐15
表示:如果结果长度少于15个字符,请添加空格,直到长度为15个字符s
表示:将参数转换为toString
的字符串并使用结果在%03d
:
0
表示:填充0
而不是空格3
表示:至少保持3个字符d
表示:参数为整数,将其格式化为基数为10的数字。 %n
与* NIX上的\n
或Windows上的\r\n
相同。
您将在此处获得更多信息:https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax
根据{{3}}和AxelH 的评论编辑
答案 1 :(得分:2)
其Java formatter syntax
上半场 - %-15s
下半场 - %03d
3表示您需要添加3位数
%n是System.line_separator - 基本上输出新行。它与/ n的作用相同,但%n可跨平台移植(信用卡@AxelH)