每当拼字符串的时候,就会思念C的printf,不过后来才发现Java也实现了类似功能。
示例
代码:String.format("Hello %s, you're the %03d visitor.", "xobo", 7);
输出:Hello xobo, you're the 007 visitor.
默认情况下,参数会依次替换格式说明符。当我们需要重复引用时,就需要对格式说明符进行编号。
代码: String.format("%1s %1s %1s, you are over %2.2fM tall .", "xobo", 1.0);
输出:xobo xobo xobo, you are over 1.00M tall .
解释
格式说明符
- %s %03d %1s %2.2f等以%开始的字符串被称为格式说明符(format specifiers);
-
格式说明符的定义为:
%[argumentindex$][flags][width][.precision]conversion
- []表示非必填项,也就是说最简单的格式说明符定义为%conversion。
%为格式说明符的起始标志,如果想在字符串中输出%,就需要写成%%;
- argument_index 可选 是一个整数,它表示参数在参数列表的位置。注意它是从1开始的,第一个参数是1,第二个参数是2;
-
flags 可选 是可以改变输出格式的字符。
-
如果不提供flag默认格式为:
- 输出按照width做右对齐
- 负数以’-‘开始
- 正数和零不带符号或者前置空格
- 没有组分隔符
常用的flag:
- '-' 左对齐 (通用)
- '+' 数字一直带有符号 (数字有效)
- '0' 用0补空白处 (数字有效)
- ','
-
- width 可选 是一个非负整数,表示输出的最小字符数。
- precision 可选 是一个非负整数,限制输出字符长度。
- conversion 必填 一个字符,表明参数将如何被格式化。
最新评论
昨天发现的,然后在application.yml中配置“hibernate.dialect.storage_engine=innodb”。但是自动生成的表还是不会设置为innoDB,看了底层源码。这个配置也是没有加载到的 原来是要在hibernate.properties中加这个配置。感谢
将virtualbox虚拟网卡驱动卸载了,然后就会好了,但是这个时候virtualbox虚拟网络就无法使用了,重新安装一下virtualbox就好了
我也发现了这个注释:注释“Use "hibernate.dialect.storage_engine=innodb" environment variable or JVM system property instead.” ----- 坑啊。。。。。。。
卸载蓝牙驱动·在设备里面找,一般在网卡那里 卸载重启就行了
高