Java 这些符号字符串是什么意思:%02d%01d?
我看到的代码行类似于:Java 这些符号字符串是什么意思:%02d%01d?,java,printf,Java,Printf,我看到的代码行类似于: sprintf(buffer,"%02d:%02d:%02d",hour,minute,second); 我认为符号字符串指的是每小时、每分钟等显示的数字字符数——或者类似的数字,我不完全确定 正常情况下,我可以解决这类问题,但在google上搜索“%02d%01d”时,我找不到任何有用的参考资料。有人能帮我解释一下吗? 同样的规则也适用于Java 在您的情况下,它意味着以2位或更多位输出整数值,如果数字小于或等于9,则第一位为零。Alexander的答案指的是完整的文
sprintf(buffer,"%02d:%02d:%02d",hour,minute,second);
我认为符号字符串指的是每小时、每分钟等显示的数字字符数——或者类似的数字,我不完全确定
正常情况下,我可以解决这类问题,但在google上搜索“%02d%01d”时,我找不到任何有用的参考资料。有人能帮我解释一下吗?
同样的规则也适用于Java
在您的情况下,它意味着以2位或更多位输出整数值,如果数字小于或等于9,则第一位为零。Alexander的答案指的是完整的文档
问题中的简单示例只是用两位数字打印出这些值,必要时加上前导0。而不是用谷歌搜索
%02d
您应该搜索sprintf()
函数
%02d
的意思是“用2位数字格式化整数,用零填充它”,因此:
格式化数据结果
%02d 101
%02d 11 11
这篇文章是关于printf函数类的,从50年代到今天,使用了几种语言。它们是格式化
字符串的。中给出了特定于Java的语法
一般语法如下:
%[argument_index$][flags][width][.precision]conversion
%02d
执行十进制整数转换d
,格式为零填充(0
标志),宽度2
。因此,值为say7
的int
参数将被格式化为“07”
字符串
您也可以在中看到此格式字符串,例如
常用格式
这些只是一些常用的格式,并没有详尽地介绍语法
数字的零填充
对正宽度
您可以使用-
标志进行左对齐;否则就对了
for (Map.Entry<Object,Object> prop : System.getProperties().entrySet()) {
System.out.printf("%-30s : %50s%n", prop.getKey(), prop.getValue());
}
要获得更强大的消息格式,可以使用<代码>%n
是换行符转换(见下文)
十六进制转换
要获得更强大的浮点格式,请改用
%n
用于平台特定的行分隔符
%%
用于实际的%%
-符号
请注意,double
literal99.99
自动装箱到double
,在此基础上定义了使用toString()
的字符串转换
n$
用于显式参数索引
%是一种特殊的字符,您可以将其放入格式字符串中,例如在C语言printf和scanf(和family)中,它基本上表示“这是其他内容的占位符,不能按字面意思打印/读取。”
例如,printf格式字符串中的(%02d)
是整数变量的占位符,该变量将以十进制(%02d)
格式打印,并填充到至少两位数字,必要时使用零
实际整数由您在函数的参数中提供,例如,printf(“%02d”,5)代码>
如果要在屏幕上打印05
,(%01d)
也同样有效
java和其他语言的相同保持:(
)它也存在于C++和许多其他类似C语言中。添加到Alxand EnrMP注释(帮助搜索引擎)中,它也以相同的方式在R中使用SaveFf{Base}函数,它是C函数的包装器。
System.out.printf("Agent %03d to the rescue!", 7);
// Agent 007 to the rescue!
for (Map.Entry<Object,Object> prop : System.getProperties().entrySet()) {
System.out.printf("%-30s : %50s%n", prop.getKey(), prop.getValue());
}
java.version : 1.6.0_07
java.vm.name : Java HotSpot(TM) Client VM
java.vm.vendor : Sun Microsystems Inc.
java.vm.specification.name : Java Virtual Machine Specification
java.runtime.name : Java(TM) SE Runtime Environment
java.vendor.url : http://java.sun.com/
System.out.println(Integer.toHexString(255));
// ff
System.out.printf("%d is %<08X", 255);
// 255 is 000000FF
System.out.printf("%+,010.2f%n", 1234.567);
System.out.printf("%+,010.2f%n", -66.6666);
// +01,234.57
// -000066.67
System.out.printf("%s,%n%s%n", "Hello", "World");
// Hello,
// World
System.out.printf("It's %s%% guaranteed!", 99.99);
// It's 99.99% guaranteed!
System.out.printf("%1$s! %1$s %2$s! %1$s %2$s %3$s!",
"Du", "hast", "mich"
);
// Du! Du hast! Du hast mich!
System.out.format("%s?! %<S?!?!?", "Who's your daddy");
// Who's your daddy?! WHO'S YOUR DADDY?!?!?