解説
プログラミング言語には、似たような基本的な処理が入っているものです。そういった処理があることを知っていれば、新しいプログラミング言語に触れた場合も、目的の機能を探しやすくなります。
よくある処理の一つに、文字列の処理があります。そして、多くのプログラミング言語は、似たような名前の関数になっています。
文字列の検索と取り出しは、多くのプログラミング言語で見かける処理です。
「indexOf」という名前でよく出てくる処理では、対象の文字列内で、検索文字列の位置を得ます。文字の位置は0から始まり、見つからない場合は-1を戻すような処理です。また、第2引数を指定することで、検索の開始位置を指定します。
以下、JavaScriptの例です。
var str = "雨が降っている。傘が必要だ。";
var srch = "が";
// 先頭から検索を開始。「が」の位置を得る。
var res1 = str.indexOf(srch);
console.log(res1); // 1と出力
// 最初の「が」の位置は1
// 前回検索結果の後から検索を開始。「が」の位置を得る。
var res2 = str.indexOf(srch, res1 + srch.length);
console.log(res2); // 9と出力
// 次の「が」の位置は9
// 前回検索結果の後から検索を開始。「が」の位置を得る。
var res3 = str.indexOf(srch, res2 + srch.length);
console.log(res3); // -1と出力
// 「が」は2つしかなく、見つからないので-1になる
「substring」などの名前で出てくる処理では、文字列の一部を取り出して、新しい文字列を作ります。この種類の命令には、取り出す位置の指定方法が、命令によって異なっています。先頭位置と終了位置を指定したり、先頭位置と取り出す文字列の長さを指定したりします。
また、引数の指定の仕方によって、先頭位置から残りすべて、末尾から取得など、仕様がそれぞれ異なっているので、注意が必要です。
以下、JavaScriptの例です。
// substring
var str = "月火水木金土日";
var res1 = str.substring(2, 4);
console.log(res1); // 「水木」と出力
var res2 = str.substring(2);
console.log(res2); // 「水木金土日」と出力
// 第2引数を省略した際は、末尾までをとる
// substr
var str = "月火水木金土日";
var res1 = str.substr(2, 3);
console.log(res1); // 「水木金」と出力
var res2 = str.substr(2);
console.log(res2); // 「水木金土日」と出力
// 第2引数を省略した際は、末尾までをとる
var res3 = str.substr(-2);
console.log(res3); // 「土日」と出力
// マイナスの場合は、先頭位置を末尾から数える
var res3 = str.substr(-4, 2);
console.log(res3); // 「木金」と出力
サンプル
今回は、解説中でコードを示したのでなしです。
