Memos About Salesforce

Salesforceにハマってたこと!

SFDC Apex 文字列内の{0}などを置換

こんにちは、管理人の@Salesforce.Zです。

String.format(置換パターン, 置換形式設定の文字列)

がという文字列メソッドは開発では、よく使われる

今回、そのシンプルな使用方法とユースケース例を

共有したいと思います。

目次

format(stringToFormat, formattingArguments)

第 1 引数をパターンとして扱い

第 2 引数を apex:outputText および Java MessageFormat クラスと同じ方法の置換および形式設定に使用して文字列を返します。

使用方法例

    // 第一引数はパターン
    String placeholder = 'Hello {0}, {1} is cool!';
    // 第二引数は形式設定
    List<String> fillers = new String[]{'Jason','Apex'};
    // 第一引数の変数({0},{1}など)を第二引数の内容で置換
    String formatted = String.format(placeholder, fillers);
    System.assertEquals('Hello Jason, Apex is cool!', formatted);

ユースケース

  • メールテンプレート  メール内容に変数({0}, {1}など)を埋め込む、プログラムでメールテンプレートをコールし、置換、送信
  • カスタムラベル  メッセージのパターンとして用意し、内容に変数({0}, {1}など)を埋め込む、プログラムで置換、画面に表示  - エラーメッセージ:例 Error Detail: {0}、 あるいは {0}が未入力です。  - 確認メッセージ:例 {0}に進んでよろしいでしょうか  etc.

最後に

文字列に関して、なにの共有の部分がある時に

共通部分文字列にカスタマイズ部分の変数の形でよく使用される

ケースバイケースで、自由に使ったら、いかがですか