こんにちは、にいるです。
今回は、「文字列の判定」について説明したいと思います。
1.文字列とは
まず文字列とは何かですが、Salesforceのカスタム項目で例えると「テキスト型のデータ型」になります。
Apexだと、Stringというデータ型ですね。
変数宣言は下記のように宣言します。
1 |
String moji1 = 'test'; |
開発をしていると、文字列を判定した結果によって、分岐処理を行うことがよくあります。
その値を正しくコントロールするためには文字列の判定結果をしっかり把握しておかないといけません。
Stringクラスには、NULL判定できるメソッドが用意されているので、それらを使用してみたいと思います。
2.NULL判定できるメソッド
ここでは、Stringクラスで用意されているメソッドを3点紹介します。
2-1.equalsメソッド
まず、「equals」メソッドです。
これはメソッドに渡す文字列と比較対象の文字列が同一かどうかを評価します。
1 2 3 4 5 6 7 8 9 |
String moji1 = 'test'; Boolean result1 = moji1.equals('test'); if(moji1 == 'test'){ System.debug('●①==判定●'); } if(result1){ System.debug('●②equals判定●'); } |
上記の例では、「moji1」を①比較演算子と②equalsメソッドでそれぞれ値が’test’かどうかを評価しています。
結果を見てみましょう。
結果は、両方ともIf文の中に入っているので、比較結果はmoji1は’test’と評価していることがわかりますね。
2-2.isBlankメソッド
次は、「isBlank」です。
※公式のヘルプドキュメントより
実際にApexコードを書いて、中身を見てみたいと思います。
1 2 3 4 5 6 7 8 9 10 11 12 |
String moji2 = ''; Boolean result2 = moji2.equals(''); if(moji2 == ''){ System.debug('●③==判定●'); } if(result2){ System.debug('●④equals判定●'); } if(String.isBlank(moji2)){ System.debug('●⑤isBlank●'); } |
デバッグの結果を見てみましょう。
結果は③比較演算子、④equalsメソッド、⑤isBlankメソッドの全てがTrueになっています。
2-3.isEmptyメソッド
最後は、「isEmpty」です。
ほぼisBlankと同じですが、空白だけ判定しないメソッドです。
※公式のヘルプドキュメントより
実際にApexコードを書いてみます。
1 2 3 4 5 6 |
String moji2 = ''; Boolean result2 = moji2.equals(''); if(String.isEmpty(moji2)){ System.debug('●⑥isEmpty●'); } |
このデバッグ結果を見てみます。
問題なく、NULL判定でTrueになっていますね。
3.isBlancとisEmptyの違い
最後にisBlankとisEmptyの違いについて、見ておきます。
変数には「 」半角スペースを代入して処理を確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
String moji3 = ' '; Boolean result3 = moji3.equals(' '); if(moji3 == ' '){ System.debug('●⑦==判定●'); } if(result3){ System.debug('●⑧equals判定●'); } if(String.isBlank(moji3)){ System.debug('●⑨isBlank●'); } if(String.isEmpty(moji3)){ System.debug('●⑩isEmpty●'); } |
デバッグの結果を見てみます。
⑦比較演算子と⑧equalsメソッド、⑨isBlankメソッドはTrueですが、⑩isEmptyメソッドではFalseになってしまいました。
ここの使い分けではプログラムが怪しい動きをしてしまうので、もし順当に動かすなら空白もNULL判定でなくす処理を入れておかないといけません。
4.まとめ
いかがでしたでしょうか。
プログラムを書くときは、必ず順次と分岐を織り交ぜて書くと思います。
その分岐処理をしっかり書いておかないと怪しい動きになってしまいます。
人間であれば感覚であればわかりますが、コンピュータは融通が利きません笑
なので、しっかり人間がコンピュータが理解するように書いてあげましょう!
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!