セーブポイントが見つからない

【Apex】文字列の判定について

こんにちは、にいるです。

今回は、「文字列の判定」について説明したいと思います。

【ヘルプ】String クラス

1.文字列とは

まず文字列とは何かですが、Salesforceのカスタム項目で例えると「テキスト型のデータ型」になります。
Apexだと、Stringというデータ型ですね。

変数宣言は下記のように宣言します。

開発をしていると、文字列を判定した結果によって、分岐処理を行うことがよくあります。
その値を正しくコントロールするためには文字列の判定結果をしっかり把握しておかないといけません。

Stringクラスには、NULL判定できるメソッドが用意されているので、それらを使用してみたいと思います。

2.NULL判定できるメソッド

ここでは、Stringクラスで用意されているメソッドを3点紹介します。

Notを使用すれば、さらに柔軟な判定ができます。

2-1.equalsメソッド

まず、「equals」メソッドです。
これはメソッドに渡す文字列と比較対象の文字列が同一かどうかを評価します。

上記の例では、「moji1」を①比較演算子と②equalsメソッドでそれぞれ値が’test’かどうかを評価しています。
結果を見てみましょう。
 

 
結果は、両方ともIf文の中に入っているので、比較結果はmoji1は’test’と評価していることがわかりますね。

2-2.isBlankメソッド

次は、「isBlank」です。

「isBlank」は、指定した string が空白、空 (”)、または null の場合は true、それ以外の場合は false を返します。
※公式のヘルプドキュメントより

実際にApexコードを書いて、中身を見てみたいと思います。

デバッグの結果を見てみましょう。
 

 
結果は③比較演算子、④equalsメソッド、⑤isBlankメソッドの全てがTrueになっています。

2-3.isEmptyメソッド

最後は、「isEmpty」です。
ほぼisBlankと同じですが、空白だけ判定しないメソッドです。

「isEmpty」は、指定した string が空 (”) または null の場合は true、それ以外の場合は false を返します。
※公式のヘルプドキュメントより

実際にApexコードを書いてみます。

このデバッグ結果を見てみます。
 

 

問題なく、NULL判定でTrueになっていますね。

3.isBlancとisEmptyの違い

最後にisBlankとisEmptyの違いについて、見ておきます。
変数には「 」半角スペースを代入して処理を確認します。

デバッグの結果を見てみます。
 

 
⑦比較演算子と⑧equalsメソッド、⑨isBlankメソッドはTrueですが、⑩isEmptyメソッドではFalseになってしまいました。

ここの使い分けではプログラムが怪しい動きをしてしまうので、もし順当に動かすなら空白もNULL判定でなくす処理を入れておかないといけません。

4.まとめ

いかがでしたでしょうか。

プログラムを書くときは、必ず順次と分岐を織り交ぜて書くと思います。
その分岐処理をしっかり書いておかないと怪しい動きになってしまいます。
人間であれば感覚であればわかりますが、コンピュータは融通が利きません笑

なので、しっかり人間がコンピュータが理解するように書いてあげましょう!

皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。

ではでは!