SalesforceのStringクラスとは?
SalesforceのStringクラスとは、Apex言語のプリミティブデータ型の文字列型クラスです。SalesforceのStringクラスは、一部Javaの標準メソッドを提供しており、JavaのStringクラスに似ています。
一方で、JavaのStringクラスと異なる点もありますので、次の項目よりSalesforceのStringクラスの特徴を解説します。
SalesforceのStringクラスの特徴
それでは、SalesforceのStringクラスの特徴を解説します。JavaのStringクラスとの違いも交えながら、解説しますので、ぜひ参考にしてください。
文字列は’(シングルクォーテーション)で囲う
JavaのStringクラスに代入する文字列は、”(ダブルクォーテーション)で囲いますが、SalesforceのStringクラスでは、’(シングルクォーテーション)で囲みます。
例)
String str = 'おはようございます';
文字数に制限がない
SalesforceのStringクラスは、文字数に制限はありません。そのため、Stringクラスのデータが大きくならないように、ヒープサイズの制限で調整します。
sObjectのString型の項目値は、先頭・末尾の空白文字や空文字が使えない
Lightningプラットフォームデータベースに保存できるsObjectのString型の項目値には、先頭および末尾に空白文字や空文字が使用できません。
sObjectとは関係ないApexのString型の項目値では、先頭および末尾に空白文字や空文字が使用できます。
比較演算子が使える
SalesforceのStringクラスでは、==などの比較演算子を利用して文字列比較が行えます。
なお、文字列の比較結果は、大文字と小文字は区別せず、コンテキストユーザーのロケールを元に照合されます。
Stringクラスでよく利用するメソッド
SalesforceのStringクラスでは様々なメソッドが提供されています。今回は、それらのメソッドの中から、特によく利用されるメソッドを8つ厳選し、解説します。
valueOf(integerToConvert)
valueOf(integerToConvert)は、小数点を含まない数値を文字列に変換するメソッドです。valueOf()は、小数点を含まない数値以外にも日付やオブジェクトなどを文字列に変換するメソッドが提供されています。
・パラメータ
Integer 文字列に変換する数値
・戻り値
String 数値から変換された文字列
例)
Integer intValue = 22;
// 数値を文字列に変換
String sintValue = String.valueOf(intValue);
isBlank(inputString)
isBlank(inputString)は、引数の文字列が空文字、またはnullの場合、trueを返却するメソッドです。
・パラメータ
String チェック対象の文字列
・戻り値
Boolean チェック結果(空文字またはnullの場合true、それ以外の場合false)
例)
String nullStr = null;
System.assert(String.isBlank(nullStr));// trueが返却される
startsWith(prefix)
startsWith(prefix)は、メソッドを呼び出した文字列が引数の文字列と前方一致(大文字小文字を含む)する場合、trueを返却するメソッドです。大文字小文字を区別せずに前方一致の確認をしたい場合は、startsWithIgnoreCase(prefix)を利用します。
・パラメータ
String 前方一致の比較対象の文字列
・戻り値
Boolean 比較結果(引数の文字列と前方一致する場合true、前方一致しない場合false)
例)
String word = 'Hello';
// 「Hello」は引数「H」と前方一致するため、trueとなります。
System.assert(word.startsWith('H'));
endsWith(suffix)
endsWith(suffix)は、メソッドを呼び出した文字列が引数の文字列と後方一致(大文字小文字を含む)する場合、trueを返却するメソッドです。大文字小文字を区別せずに後方一致の確認をしたい場合は、endsWithIgnoreCase(suffix)を利用します。
・パラメータ
String 後方一致の比較対象の文字列
・戻り値
Boolean 比較結果(引数の文字列と後方一致する場合true、後方一致しない場合false)
例)
String word = 'Hello';
// 「Hello」は引数「o」と後方一致するため、trueとなります。
System.assert(word.endsWith('o'));
contains(substring)
contains(substring)は、メソッドを呼び出した文字列が引数の文字列と部分一致(大文字小文字を含む)する場合、trueを返却するメソッドです。大文字小文字を区別せずに部分一致の確認をしたい場合は、containsIgnoreCase(substring)を利用します。
・パラメータ
String 部分一致の比較対象の文字列
・戻り値
Boolean 比較結果(引数の文字列と部分一致する場合true、部分一致しない場合false)
例)
String word = 'Hello';
// 「Hello」は引数「e」と部分一致するため、trueとなります。
System.assert(word.contains('e'));
format(stringToFormat, formattingArguments)
format(stringToFormat, formattingArguments)は、第2引数の内容で第1引数のフォーマットを置き換えて、返却するメソッドです。
・パラメータ
String フォーマット
List
置き換える内容・戻り値String 置き換えた文字列例)
String format = '{0}さん、{1}';
List parameters = new List {'山田', 'こんにちは。' };
// 第2引数の内容で第1引数のフォーマットが置き換わるため、
// 「山田さん、こんにちは。」が出力されます。
System.debug (String.format(format, parameters));
deleteWhitespace()
deleteWhitespace()は、メソッドを呼び出した文字列からすべての空白文字を削除し、空白文字がない状態の文字列を返却するメソッドです。
・パラメータ
なし
・戻り値
String フォーマットを置き換えた文字列
例)
String fruits = 'りんご なし ばなな';
// 空白文字がすべて削除され、「りんごなしばなな」と出力されます。
System.debug (fruits.deleteWhitespace());
join(iterableObj, separator)
join(iterableObj, separator)は、第2引数の区切り文字で第1引数のオブジェクトを文字列に連結して、返却するメソッドです。・パラメータObject ListなどのオブジェクトString 区切り文字・戻り値String オブジェクトを連結した文字列例)
List fruitList = new List{'りんご', 'なし', 'ばなな'};
// Listの内容が「|」で結合されるため、「りんご|なし|ばなな」と出力されます。
System.debug (String.join(fruitList, '|'));
Stringクラスを使ってみよう
今回はSalesforceのStringクラスの特徴やよく利用されるメソッドについて解説しました。SalesforceのStringクラスとは、Apex言語のプリミティブデータ型の文字列型クラスです。Apex言語では文字列型のデータを扱う機会が多いため、Stringクラスを利用する機会も多いでしょう。今回紹介したメソッド以外にも、Stringクラスでは多様なメソッドが提供されています。興味がある方は、ぜひApex開発者ガイドのStringクラスのページを参照してみてはいかがでしょうか。
]]>
この記事の監修者・著者
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞