【攻撃Android(7)】Stringフォーマット出力


一、Stringフォーマット出力
       
1.文字列リソース
       
(1)String(文字列)
       
stringsでxmlで定義:
 <?xml version="1.0" encoding="utf-8"?>  
 <resources>  
     <string name="hello">Hello!</string>  
 </resources>

       
レイアウトファイルで参照:
 <TextView  
    android:layout_width="fill_parent"  
    android:layout_height="wrap_content"  
    android:text="@string/hello" />

       
アクティビティ(Javaクラス)で参照:
String string = getString(R.string.hello);

       
(2)String Array(文字列配列)
       
stringsでxmlで定義:
 <?xml version="1.0" encoding="utf-8"?>  
 <resources>  
     <string-array name="planets_array">  
         <item>Mercury</item>  
         <item>Venus</item>  
         <item>Earth</item>  
         <item>Mars</item>  
     </string-array>  
 </resources>

       
アクティビティ(Javaクラス)で参照:
 Resources res = getResources();  
 String[] planets = res.getStringArray(R.array.planets_array);

       
(3)Quantity String(Plurals)(数文字列/複数)
       
res/values/strings.xmlで定義:
 <?xml version="1.0" encoding="utf-8"?>  
 <resources>  
     <plurals name="numberOfSongsAvailable">  
         <item quantity="one">One song found.</item>  
         <item quantity="other">%d songs found.</item>  
     </plurals>  
 </resources>

       
res/values-pl/strings.xmlで定義:
 <?xml version="1.0" encoding="utf-8"?>  
 <resources>  
     <plurals name="numberOfSongsAvailable">  
         <item quantity="one">Znaleziono jedną piosenkę.</item>  
         <item quantity="few">Znaleziono %d piosenki.</item>  
         <item quantity="other">Znaleziono %d piosenek.</item>  
     </plurals>  
 </resources>

       
アクティビティ(Javaクラス)で参照:
 int count = getNumberOfsongsAvailable();  
 Resources res = getResources();  
 String songsFound = res.getQuantityString(R.plurals.numberOfSongsAvailable, count, count);

       
2.Stringフォーマット出力
       
String.format("-----%s----%d", getString(R.string.hello_world), 200)
       
String.format("%f----%.2f", Math.PI, Math.PI)