現在表示している画面のURLから"/apex/SamplePage"のような値を取得したくて
getUrl関数で取得してみました。
その時に"?"以降のパラメータ部分もくっついてきました。
"?"部分以降はいらなかったので"split"関数を使って対応してみたところ
次のようなエラーが発生。
そのときの処理がこんな感じです。
String url = ApexPages.currentPage().getUrl(); List<String> urlList = url.split('?', 2);
あれ・・split って ”?” は対象にできなかったけ・・・。
それとも関数の使い方間違ってる???
という感じでいろいろ調べて見たけどよく分からず・・・。
諦めて他の方法を考えようかと思った時に、他の人に原因を教えてもらいました。
"?"とかの特殊文字は次のように書く必要があるとのことです。
List<String> urlList = url.split('\\?', 2);
これでバッチリ動きました。
特殊文字はこうやってエスケープしないとダメなんですね。
splitで"?"を対象にすることがなかったので意識してなかったです...。
ちなみに英語版のDiscussion Boardにも事例があったみたいです。
String Split function fails if using a dot as criteria
http://boards.developerforce.com/t5/Apex-Code-Development/String-Split-function-fails-if-using-a-dot-as-criteria/td-p/236733