【攻撃Android(7)】Stringフォーマット出力
2908 ワード
一、Stringフォーマット出力
1.文字列リソース
(1)String(文字列)
stringsでxmlで定義:
レイアウトファイルで参照:
アクティビティ(Javaクラス)で参照:
(2)String Array(文字列配列)
stringsでxmlで定義:
アクティビティ(Javaクラス)で参照:
(3)Quantity String(Plurals)(数文字列/複数)
res/values/strings.xmlで定義:
res/values-pl/strings.xmlで定義:
アクティビティ(Javaクラス)で参照:
2.Stringフォーマット出力
String.format("-----%s----%d", getString(R.string.hello_world), 200)
String.format("%f----%.2f", Math.PI, Math.PI)
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)