1. ホーム
  2. android

[解決済み] 文字列リソースファイル内のformat文

2022-04-23 10:28:54

質問

通常のstrings.xml Resourceファイルに、以下のような文字列が定義されています。

<string name="hello_world"> HELLO</string>

以下のようなフォーマット文字列を定義することは可能でしょうか?

 result_str = String.format("Amount: %.2f  for %d days ",  var1, var2);

をstrings.xmlリソースファイルに追加しますか?

特殊文字をエスケープしてみましたが、うまくいきません。

どうすればいいですか?

を使用する必要はありません。 formatted="false" をXMLで作成します。 完全修飾文字列フォーマット・マーカーを使用する必要があるだけです。 %[POSITION]$[TYPE] (ここで [POSITION] は属性位置で [TYPE] は変数の型)、むしろ短いバージョン、例えば %s または %d .

引用元 Android Docs: 文字列の書式設定とスタイル :

<string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

この例では、フォーマット文字列には2つの引数があります。 %1$s は 文字列と %2$d は10進数の整数です。で文字列をフォーマットすることができます。 アプリケーションからの引数は、このようになります。

Resources res = getResources();
String text = res.getString(R.string.welcome_messages, username, mailCount);