String型の比較を行うときに便利な関数かいろいろと用意されています。
String Methods
http://www.salesforce.com/us/developer/docs/apexcode/index_Left.htm#StartTopic=Content/apex_methods_system_string.htm?SearchType=Stem
すごく便利な関数がたくさんあるのですが、変数の値がNULL値の場合にExceptionエラーが発生してしまうことがあります。"equals"の処理で検証してみました。
正常系
この処理では値が一致しているので次のようなログが出力されます。
異常系
対象がNULL値の場合は次のようにExceptionエラーが発生します。
おまけ
'==' で比較した場合は、NULLでもExceptionエラーは発生しません。
回避方法
equals関数を使わずに判定すればそれで問題ないのですが、せっかく用意されているのでequals関数でExceptionエラーを発生させないようにする方法を確認してみました。
こんな感じです。
String.isNotEmpty(s)による判定を先につけることでExceptionエラーが発生しなくなりました。
ちなみにString.isNotEmpty(s)が先にない場合はエラーが発生してしまうみたいです。
おそらくindexOf等の関数も同様の方法で対応可能だと思います。