Android的string.xml中经常会有类似这样的代码,%1$s ,它是什么意思呢?
一般在TextView中想要动态的显示某些值,用到%1$s,%1$d,表示:
%n$ms:代表输出的是字符串,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$md:代表输出的是整数,n代表是第几个参数,设置m的值可以在输出之前放置空格
%n$mf:代表输出的是浮点数,n代表是第几个参数,设置m的值可以控制小数位数,如m=2.2时,输出格式为00.00
%d (表示整数)、 %f (表示浮点数)、 %s (表示字符串) 中间的n$m是固定格式,m可以为空
使用:
1、整型,比如“小姐姐今年18岁了”,这个18是整型的。在string.xml中可以这样写,
<string name="sister">小姐今年%1$d岁了</string>
String ageFormat = getResources().getString(R.string.sister);
String ageFinal = String.format(ageFormat,18);
就会将%1$d替换为18;
%1$d表达的意思是整个name=”sister”中,第一个整型的替代。如果一个name中有两个需要替换的整型内容,则第二个写为:%2$d,以此类推
2、string型,比如“我的名字叫张三,我喜欢篮球”;这里的“张三”和“篮球”都需要替换。
在string.xml中可以这样写,<string name="alert">我的名字叫%1$s,我喜欢%2$s</string>
String alertFormat= getResources().getString(R.string.alert);
String alertFinal = String.format(alertFormat, "张三","篮球")
总结:用法为%加d或者 f或者 s,具体看需要,%和d(或者 f 或者 s)之间放n$m ,其中n表示第几个参数,m表示不一样,当%后面加的是 d(整数)和s(字符串)时候,m代表输出参数前面的空格,比如上面示例的“张三”和“篮球”都是参数,如果需要在他们之前加空格就写m,一般设置a个空格,m就填写a+2 ,比如设置两个空格m就写4 ;%后加的是f时候,m表示的是小数点个数,比如三个小数m就填写3.3
网友评论