SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

マンガで分かるプログラミング用語辞典

「文字列の検索と取り出し」
~マンガでプログラミング用語解説

マンガで分かるプログラミング用語辞典(67)

解説

 プログラミング言語には、似たような基本的な処理が入っているものです。そういった処理があることを知っていれば、新しいプログラミング言語に触れた場合も、目的の機能を探しやすくなります。

 よくある処理の一つに、文字列の処理があります。そして、多くのプログラミング言語は、似たような名前の関数になっています。

 文字列の検索と取り出しは、多くのプログラミング言語で見かける処理です。

 「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);    // 「木金」と出力

サンプル

 今回は、解説中でコードを示したのでなしです。

フィードバックお待ちしております!

 ご感想、解説して欲しい用語、解説内容のアドバイスなどございましたら、FacebookTwitterなどでお気軽に編集部までお寄せください。よろしくお願いいたします。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
マンガで分かるプログラミング用語辞典連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8176 2014/11/18 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー