以下のプログラムをご覧ください。
Y1 = index( X, "SAS");
Y2 = find( X, "SAS" ); |
どちらも、変数X に "SAS" という文字が何バイト目にあるかを取得しています。
この2つの関数の違いですが、FIND関数は、INDEX関数の進化版というイメージです。
(FIND関数には第3引数と第4引数があり、これらの引数を使うとちょっと便利)
たとえば、
変数X から大文字・小文字区別せずに "SAS" という文字が何バイト目にあるかを取得したいとします。
この場合、それぞれ以下のような書き方が出来ます。
Y1 = index( upcase(X), "SAS" );
Y2 = find( X, "SAS", "i" ); |
- INDEX関数では、UPCASE関数で大文字にしてやる必要があります。
- FIND関数では、第3引数に "i" を指定すると大文字・小文字区別せずに検索してくれるので、非常にシンプルな文になります。
INDEX関数が使われがちだけど、FIND関数の方もレパートリーに加えてあげて下さい。
(「INDEX」は5文字タイピングしないといけないけど、「FIND」は4文字で済んで、ちょっとだけ楽だし)
注意点
日本語などのマルチバイト文字を含む場合は、以下記事の通りうまく動作しないのでご注意ください。
関数の落とし穴
0 件のコメント:
コメントを投稿