1. 程式人生 > >Android字串+數字變數方法之%1$s、%1$d的用法

Android字串+數字變數方法之%1$s、%1$d的用法

(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位