2021/05/24

Salesforceのapexのsubstringについて理解しよう

 
  

Salesforceのapexのsubstring

今回はSalesforceのapexで使われるsubstringについてご紹介していきます。簡単に言うと、指定した文字列を設定通りに出力してくれるapexの関数です。 とはいえこの説明では何となくしか伝わらないでしょう。しかも「substring」と検索してくると「string」というワードも出てきて両者がどういった関係なのか混乱してきてしまいます。 そこで今回は単なる機能の解説にとどまらず、stringとsubstringとの関係性をはっきりさせる事で体系立てて理解出来る様にしました。加えて実際のコードと共に気をつけたいポイントも紹介したので、是非ご覧ください。

substringの前に文字列関数について知ろう

substringは、Salesforceのapexで使われる文字列関数の1つです。そもそも関数は、入手したデータを決められた処理を行ってから結果を返させる命令文です。 文字列や数値を指定すればそれらを合体させた結果を出力してくれるconcat関数や指定した文字列を大文字や小文字に変換してから結果を返してくれるlower関数などがあります。 それでは簡単にSalesforceの関数の役割について解説していきます。apexの関数は、小文字から大文字あるいは大文字から小文字に変換したり、文字列同士や数値と合体させたりなど値を変換して返してくれる(出力してくれる)ツールです。 基本的な注意点が2つあります。1つめはテキスト(文字)を入力する際はダブルクォーテーションマーク(””)で括る事です。2つめは数式を入力する際はAPI参照名(末尾に__cや__r)を使用し、パラメーターはカッコで括る事です。

Salesforceのapexのsubstringとは

substringはsubstrと省略して使用する事ができ、予め出力する文字数を決めてから任意の文字列を選択すると指定された文字数分だけ値として戻してくれる関数です。実際は以下の様に使用します。
substr(フィールド,ポジション,長さ)
フィールドの欄には選択、出力したい文字列を打ち込みます。ポジションの欄には指定した文字列のどの箇所から返したいのかを数値で指定します。文字列の末尾を基準に設定しており、末尾を出力したい場合は-1を、先頭を出力したい場合は1を入力する必要があります。 長さには返したい文字数を数値で入力します。もし0やマイナスの数値を入力すると何も表示されないか空を意味する「null」が表示されるなどになります。
substr(Manager_Id,8,4)
この場合、Manager_Id項目に格納されている8番目〜11番目の4文字が出力される事になります。

stringとsubstringとの違い

substringと検索すると「string」というキーワードが出てきますが、stringはクラス名でsubstringはSalesforceのapex関数名という歴然な違いがあります。 stringというクラスの中に、abbreviate(maxWidth)やdeleteWhitespace()と言った関数が複数所属していて、substringはその1つなのです。ですのでstringの中にsubstringがあるというイメージを持ってください。 ちなみにstrings内にある関数は引数で与えた数値分半角スペースを埋めてくれる関数や第1引数の文字列を第2引数の文字列に置き換えてから結果を返してくれる関数など多様な働きをしてくれます。 substringを取っ掛かりにしてSalesforceのapexの様々な関数を習得してください。

substringの使用方法

ここからはsubstring関数の使い方を紹介していきます。
substr("CRM", 1, 1)
1番目のコードでは、CRMという文字列を直接入力しているので、1番最初の”C”だけ出力されます。気をつけたいのは文字列にダブルクォーテーションマークを付けた事です。テキストや数値を直接指定する場合に””が必要になります。
substr("CRM", 1, 2) "
2番目のコードでは、選択した文字列及び指定箇所の指示は変わりませんが、2文字抽出する様にプログラミングされています。従って”CR”と返されます。
substr("CRM", -2, 2) 
3番目のコードが1、2番目のコードと異なるのはポジションの指定方法です。今までは1番最初を基準としてきましたが、今回は末尾を基準にしています。先述した様に末尾を基準にする際は-1から始まるので後ろから2番目からを抽出、つまり”RM”が返されるのです。

substring関数は簡単に使いこなせる

substring関数は細かなルールがいくつかありますが、シンプルなので扱いやすいのが特徴です。ここから重要になってくるのは、substring以外の関数の習得です。stringクラスの中にも様々な関数が用意されています。 そういった関数もシンプルなコードで稼働してくれるので覚えやすいです。ですのでsubstringを取っ掛かりにしてstringクラス内の関数を制覇してください。]]>