String s1=sc.next();
int x=sc.nextInt();
System.out.printf( "%-15s%03d\n", s1, x);
有人可以解释' printf'括号?
答案 0 :(得分:3)
这是Java的格式化程序语法。您可以找到有关它的更多信息here。在您的情况下,您有2个参数,这些参数将被格式化。
使用s1
格式化的第一个%-15s
。 %
表示接下来是将被格式化的参数。然后跟随-
导致左对齐。 15
填充字符串最多15个字符(在末尾添加空格)。最后,s
表示您正在格式化字符串。
使用x
格式化的第二个%03d
。这里0
是填充字符,这意味着,如果需要,添加零。 3
也是宽度,意味着填充字符0
会根据需要添加多次,以使其长3位(此时为开头)。最后d
表示格式化整数。
答案 1 :(得分:1)
Best tutorial for printf
out there
基础知识是:%s
正在寻找第一个字符串作为它可以找到的参数,%d
表示第一个int,而03
表示%d
之前是std::istream
关于如何打印十进制数的修饰符。
答案 2 :(得分:1)
“%-15s”表示在15个空格内,字符串“ s1”将填充在左侧。 (从左侧填入空白) “%03d”表示在3 0s内,将在右侧填充整数“ x”。(从右侧填充零)。
这只能通过使用printf方法来完成。
答案 3 :(得分:1)
这用于java中的stdout。
解释 :
String s1=sc.next(); int x=sc.nextInt(); System.out.printf( "%-15s%03d\n", s1, x);
s1,x 是你读取的字符串和整数 System.out.print 用于标准输出 "%-15s%03d\n", s1, x: 这里 % 打印字符串 _15s 给出 15 个空格和 %03d 打印 3 位数字读取的整数(即使你读取 2 或 1 或 5 它使它成为 3 位并打印)
答案 4 :(得分:0)
这是String格式的语法,只能使用Java中的printf方法来完成。
我们已经知道我们使用“ s” 表示字符串,使用“ d” 表示数字,在这里我们可以看到他们使用“-” (空格/空白),后跟数字“ 15” ,这意味着对于给定的字符串(从左侧开始),输出将带有15个空格,并且使用相同的语法,参见“ 03d” ,这意味着,如有必要,将添加零。