【Java】文字列の位置を検索出来るindexOfメソッドを理解しよう!【初心者向け】
  • facebookページ
  • twitterページ
  • 2019.10.02

    【Java】文字列の位置を検索出来るindexOfメソッドを理解しよう!【初心者向け】

    Javaでは、特定の文字列の位置を検索するために利用出来るメソッドとして「indexOf」が提供されています。

    本記事では、Stringクラスの「indexOf」「lastindexOf」メソッドに関して、基本的な使い方をサンプルコードをまじえながらご紹介していきます。

    Java indexOfメソッドとは

    indexofメソッドはJavaのStringクラスより提供されているメソッドの1つです。

    ある特定の文字列の中に、指定した文字列が含まれているかを調べるために利用します。

    indexOfメソッドでは、指定した文字列が見つかった場合には該当の文字列が見つかった最初の文字位置を数値で返却します。

    数値の数え方は対象文字列の先頭文字を0として考えます。

    通常利用では、対象文字列の最初から指定文字列を検索しますが、第二引数で検索位置を指定することにより任意の位置からの検索が可能です。

    また、対象文字列の後ろから検索を開始することが可能な「lastindexoOf」メソッドも同様にJavaのStringクラスより提供されています。

    Java indexOfメソッドの基本的な使い方

    まずJavaにおけるindexOfメソッドの基本についてご紹介していきます。

    基本的にはStringクラスのindexOfメソッドの使い方としてご紹介しますが、StringBufferクラスやStringBuilderクラスでも使い方はほとんど同じです。

    それぞれのサンプルコードを記載して紹介していきますので、ぜひ参考にしてみてください。

    indexOfメソッドの基本

    まずStringクラスのindexOfメソッドの基本構文について理解しておきましょう。

    引数を1つだけ指定する場合

    最も基本的な使い方は以下となり、検索する対象が文字か文字列かで使い分けをします。

    上記のサンプルコードでは「char」の部分に「あ」「い」といった1文字を指定することが可能です。

    2番目の上記サンプルコードでは「str」の部分に「あいうえお」などの文字列を指定します。

    引数を1つだけ指定した場合には、検索対象文字列の最初の文字をインデックス番号「0」として、何番目に指定した文字・文字列が登場したかを返却します。

    具体的にコードで表すと下記のようになります。

    結果は以下のようになります。

    サンプルで表したコードは「あいうえお」という文字列の中に「うえ」という文字列が含まれているかを検索しています。

    結果として「あいうえお」の文字列の最初から数えて「うえ」が見つかった位置の「う」のインデックス番号「2」が返却されています。

    引数を2つ指定した場合

    StringクラスのindexOfメソッドでは第二引数として数値を指定することで指定した「インデックス番号の位置」から検索を始めることが可能です。

    基本構文は以下のようになります。

    第二引数のindexNumberに指定した位置から検索した結果を返却します。

    具体的なコードをみていきましょう。

    結果は以下のようになります。

    一方、indexOfの第二引数を変更した場合には下記のように実行結果が異なります。

    結果は以下のようになります。

    1つ目のサンプルでは第二引数に「1」を指定しており「あいうえおあいうえお」という文字列の最初の「い」の位置から検索を始めています。

    結果、最初の「うえ」が検索対象に含まれるため、1つ目の「う」のインデックス番号「2」が返却されています。

    ここで注意して頂きたいのは、返却される値は第二引数で指定したインデックス番号から数えた位置ではなく、あくまで対象文字列の頭文字から数えたインデックス番号だということです。

    続いて、2つ目のサンプルを確認していきましょう。

    2つ目のサンプルでは第二引数に「3」を指定していることから対象文字列の最初の「え」の位置から検索を始めることになります。

    結果、最初の「うえ」が検索対象に含まれないため、2つ目の「う」のインデックス番号「7」が返却されています。

    Java lastIndexOfメソッドの使い方

    JavaのStringクラスにはIndexOfと似た機能としてlastIndexOfが提供されています。

    lastIndexOfメソッドは文字通り、対象文字列の後ろから検索を行い指定文字列が登場したインデックス番号を返却します。

    lastIndexOfメソッドの基本

    基本的な使い方はindexOfメソッドとほとんど同じですので簡単にサンプルコードでご紹介していきます。

    引数を1つだけ指定する場合

    結果は以下のようになります。

    サンプルコードでは「あいうえおあいうえお」という文字列から、後ろから検索して「うえ」の文字列が最初に登場した位置のインデックス番号を返却しています。

    ここで注意していただきたいのは、返却されるインデックス番号は対象文字列の頭文字から数えたインデックス番号です。

    lastIndexOfメソッドを使っていると返却されるインデックス番号も後ろから数えたものかと勘違いしがちですが「頭文字から数えたインデックス番号」が返却されるので意識しておきましょう。

    引数を2つ指定する場合

    結果は以下のようになります。

    今回のサンプルの場合、第二引数に「3」を指定しており対象文字列は最初の「あいうえ」となります。

    ちなみに第二引数に「2」を指定した場合には対象文字列が最初の「あいう」となるため、返却値は指定文字列が見つからなかった場合を意味する「-1」が返却されます。

    さいごに

    本記事では、文字列の位置を検索出来る機能として、JavaのStringクラスから提供されているindexOfメソッド・lastIndexOfメソッドについて基本的な使い方をご紹介してきました。

    indexOfメソッドやlastIndexOfメソッドは、今回ご紹介した「Stringクラス」以外にも「StringBufferクラス」「StringBuilderクラス」「ArrayListクラス」などから提供されています。

    基本的な使い方は同じですが、それぞれ微妙に仕様が異なることもありますので、利用する際はそれぞれのクラス毎の使い方をきちんと把握した上で実装するようにしましょう。


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE

    ポテパンおすすめ案件