android xml字符串通配
1.基本使用方法
xml中定义如下字符串:
<string name="buff">%1$d --- %2$s</string>
代码中解析:
String buf = getString(R.string.buff);
buf = String.format(buf, 222, "aa");
说明:%n表示format传入的第n个参数,索引从0开始,如:%1表示第一个,%2表示第2个.
%2可以在%1前面,如下定义也是可以的:
<string name="buff">%2$s --- %1$d</string>
2.属性值
%n$[m]s:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格.
%n$[m]d:代表输出的是整数,n代表是第几个参数,m 的值表示最小占用多个字符位,不足时填充空格,也可以设为 0m,在输出之前放置 m 个 0.
%n$[m.k]f:代表输出的是浮点数,n代表是第几个参数,m 的值表示整个浮点数最少占用多少个字符位,不足时前面填充空格, k 表示小数最多占用多少位,
如设置为8.2时,对数字5.02365894, 输出格式为 5.02,数字总共8个字符,前面有4个字符
3.异常
对于指定的属性格式,必须填入对应的类型,否则会抛出IllegalFormatConversionException异常.
4.对%2$s等等字符最好手动输入,否则可能看上去正确的语句,会报下面的错误
error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?