tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Apexで文字数上限オーバー時に省略記号を表示する方法

Apexで開発するときString型の文字数が指定した上限を超えた時に省略記号「...」を表示して残りは非表示にするケースがあると思います。subStringをつかった方法でも対応できますが、よりシンプルに実装できるabbreviateというメソッドがありました。

f:id:tyoshikawa1106:20160706152349p:plain


動作確認のコードです。


このような実行結果を確認できます。
f:id:tyoshikawa1106:20160706152812p:plain


abbreviateの引数「maxWidth」は省略記号「...」を含めた文字数となります。省略時でも5文字までは必ず表示したいという場合は 5(最低文字数) + 3(省略記号文字数) で8と指定する必要がありました。それと上限8と指定した場合、省略記号が追加されるのは9文字以上となった場合だけです。8文字(上限値)ピッタリのときは省略されずに表示されます。


abbreviateの対象になるString変数がNULLだった場合はExceptionエラーが発生します。ブランク(空文字)の場合はエラーになりません。


ちなみにString.addreviteはWinter'13から使えたメソッドです。
f:id:tyoshikawa1106:20160706153345p:plain