動態字串%d %s ------android String

丿灬安之若死發表於2017-11-01

在開發經常遇到字串中的某一資料或多個資料是動態變化如字元陣列、裝置的資訊等

  • %d  使用
   <string name="warning_message">Android SDK(%d) >19 ,not support for this Device.</string>
在程式碼中呼叫如下:
<pre name="code" class="html">ShowDialog(Creat_Message.this,String.format(getResources().getString(R.string.warning_message
), android.os.Build.VERSION.SDK_INT));


  • % s  使用
  1. 一個%s
<string name="message">我選擇為%s的玩具</string>
在程式碼中呼叫如下:

String test = String.format(getResources().getString(R.string.message),  "紅色");

        2、兩個或多個
<string name="alert">我的名字叫%1$s,我來自%2$s</string>

在程式碼中呼叫如下:
String sAgeFormatString sAgeFormat1= getResources().getString(R.string.alert);
     
 String sFinal1 = String.format(sAgeFormat1, "李四","首都北京"); 



  • %d %s  綜合使用
<string name="test_xliff">小紅今年<xliff:g id="xxx">%d</xliff:g>歲了,上<xliff:g id="yyy">%s</xliff:g>年級!</string>

在程式碼中呼叫如下:

String test = String.format(getResources().getString(R.string.test_xliff), 7, "小學二");



<xliff:g>標籤介紹: 
屬性id可以隨便命名 
屬性值舉例說明
%n$ms:代表輸出的是字串,n代表是第幾個引數,設定m的值可以在輸出之前放置空格 
%n$md:代表輸出的是整數,n代表是第幾個引數,設定m的值可以在輸出之前放置空格,也可以設為0m,在輸出之前放置m個0 
%n$mf:代表輸出的是浮點數,n代表是第幾個引數,設定m的值可以控制小數位數,如m=2.2時,輸出格式為00.00 

也可簡單寫成:

%d   (表示整數)

%f    (表示浮點數)

%s   (表示字串)


相關文章