Javaエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnetJava
  2. Javaコラム
  3. Java TIPS
  4. Javaにおける文字列の検索方法とは?Javaのメソッドをご紹介

Javaにおける文字列の検索方法とは?Javaのメソッドをご紹介

  • Java TIPS
公開日時:
Javaにおける文字列の検索方法とは?Javaのメソッドをご紹介
システム
エンジニア
文字列の検索はJavaでもできるのでしょうか?
プロジェクト
マネージャー
とても素朴な疑問ですが、できますよ。では詳しくみていきましょう。

文字列の検索を行うJavaのメソッド

文字列の中に特定の単語が含まれているかを調べたいことがあります。この記事では、JavaのStringクラスの以下のメソッドを使い、文字列中の部分文字列を検索する方法を説明します。

・contains
・indexOf
・lastIndexOf

文字列を含んでいるかを調べるcontains

文字列中に、指定された部分文字列を含んでいるかを調べたいときには、containsを使います。ここからは、containsの使い方を解説していきます。

containsの使い方

JavaのStringクラスのメソッドcontainsは次の形式です。
・boolean contains(CharSequence s)
引数の文字列を含んでいる場合に、trueを返す

ここで引数の型はCharSequenceとなっていますが、Javaの仕様では、StringはCharSequenceインタフェースを実装しているクラスなので、引数にString型の変数を渡してよいです。

containsを使ったコード例

containsを用いたJavaプログラムの例を示します。このプログラムでは、コマンドライン引数で調べたい文字列を指定できます。指定がないときは、デフォルト指定のappleboycatdogという文字列内にboyが部分文字列として含まれているかを調べます。

containsを使ったプログラムの実行例

上のJavaプログラムの実行結果の例を示します。他にも好きな文字列をコマンドラインで指定して、色々なパターンを試してみて下さい。

文字列内の位置もわかるindexOfとlastIndexOf

文字列内に含まれる部分文字列を検索する際、文字列内の位置も知りたい場合には、indexOfやlastIndexOfを使用します。

indexOfとlastIndexOfの使い方

JavaのStringクラスのメソッドindexOfとlastIndexOfは次の形式です。いずれの形式でも、部分文字列が出現しない場合は-1を返します。

・int indexOf(String str)
指定された部分文字列が最初に出現する位置のインデックスを返す
・int indexOf(String str, int fromIndex)
fromIndex以降で、指定された部分文字列が最初に出現する位置のインデックスを返す
・int lastIndexOf(String str)
指定された部分文字列が最後に出現する位置のインデックスを返す
・int lastIndexOf(String str, int fromIndex)
指定された部分文字列が最後に出現する位置のインデックスを返す(fromIndexから先頭方向に検索)

indexOfとlastIndexOfでは文字列の検索方向が異なるので、探したい文字列が複数回出現する場合には、異なるインデックスが得られます。

indexOf/lastIndexOfを使ったコード例

indexOf、lastIndexOfを用いたJavaプログラムの例を示します。前のプログラムと同様に、コマンドライン引数で調べたい文字列を指定できます。先頭から、最後から、またインデックス10以降の文字列で先頭または最後からの検索を行います。

indexOf/lastIndexOfを使ったプログラムの実行例

上のJavaプログラムの実行結果の例を示します。他にも様々な文字列で試してみて下さい。またインデックスも変えて確認してみましょう。

 

システム
エンジニア
様々な方法で検索することが可能なんですね。
プロジェクト
マネージャー
頻繁に使われるのはStringですね。実際に試して理解を深めていきましょう。

文字列の検索方法を理解しよう

Javaで、文字列中に特定の部分文字列が含まれているかどうかを調べる方法として、Stringクラスのメソッドcontains、indexOf、lastIndexOfを使う方法を説明しました。StringはJavaプログラム内で頻繁に使われますので、どのような応用があるか考えてみてはいかがでしょうか。

FEnetJava・Javaコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムロゴ

株式会社オープンアップシステムはこんな会社です

秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

秋葉原オフィスイメージ
  • スマホアプリから業務系システムまで

    スマホアプリから業務系システムまで

    スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

  • 充実した研修制度

    充実した研修制度

    毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

  • 資格取得を応援

    資格取得を応援

    スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

  • 東証プライム上場企業グループ

    東証プライム上場企業グループ

    オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。

    安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

株式会社オープンアップシステムに興味を持った方へ

株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

株式会社オープンアップシステムへのご応募はこちら↓
株式会社オープンアップシステムへのご応募はこちら↓

Java新着案件New Job