Android字串+數字變數方法之%1$s、%1$d的用法
阿新 • • 發佈:2019-02-02
(1)%n$md:代表輸出的是整數,n代表是第幾個引數,設定m的值可以在輸出之前放置空格
(2)%n$ms:代表輸出的是字串,n代表是第幾個引數,設定m的值可以在輸出之前放置空格
(3)%n$mf:代表輸出的是浮點數,n代表是第幾個引數,設定m的值可以控制小數位數,如m=2.2時,輸出格式為0.00
1.整型
比如:“他今年XX歲了”,這個具體XX歲可能需要從服務端取的,那我們可以這麼寫
<string name="old">他今年%1$d歲了</string>
在程式中
TextView tvOld = (TextView)findViewById(R.id .tv_old);
tvOld.setText(getContext().getString(R.string.old, 18));
“%1$d”表達的意思是整個name=”old”中,第一個整型的替代,執行結果就是:“他今年18歲了”。
2.String型別
比如,“我叫XX,來自XXX”,這裡的XX和XXX都需要替換,在strings.xml中可以這麼寫:
<string name="introduce">我的名字叫%1$s,我來自%2$s</string>
在程式中:
TextView tvIntroduce = (TextView)findViewById(R.id .tv_introduce);
tvIntroduce.setText(getContext().getString(R.string.introduce, “宋仲基”,“太陽的後裔”));
執行結果就是:“我的名字叫宋仲基,我來自太陽的後裔”。
當然,如果一句話裡邊只有一個佔位符的話,可以直接用%s或%d。
3.float型別
<string name="loading">離配置結束還剩%1$3.3f秒</string>
String temp = getResources().getString(R.string.loading);
String timeTip = String .format(temp,123456.123456);
結果:離配置結束還剩123456.123秒
注:m設定為3.3,小數位只取3位