Java

indexOfで文字列の文字の個数を数える【Java】

2018年10月27日

indexOfメソッドの使い方ですが、Microsoft から参照すると以下のようにありました。

strObj. indexOf(subString, startIndex)

strObj: String オブジェクトまたは文字列リテラル

subString:文字列から検索する部分文字列

startIndex:String オブジェクトの検索の開始位置を示すインデックス(省略した場合は先頭)

public static void main(String[] args) {
  String word = "bgsbahb";
  String key = "b";
  System.out.println("count=" + search_count(word,key));
}

static int search_count(String word,String key) {
  int count=0;
  int result = word.indexOf(key);
  while(result != -1) {
    count++;
    result = word.indexOf(key,++result);
  }
  return count;
}

また、indexOfを用いないプログラムを以下に載せておきます。

文字列”bgsbahb”から部分文字列”b”の個数をカウントしていくプログラムです。wordとkeyはプログラムで指定してありますが、scannerメソッドを用いれば入力のみでプログラムが実行できるようになります。

static int search_count(String word,String key) {
  int count=0;
  int i=0; 
  while( i + (key.length() - 1) < word.length()) {
    String str1 = word.substring(i, i + key.length() );
    if(str1.equals(key)) {
      count++;
    }
    i++;
  }
  return count;
}

indexOfメソッドを使わず、equalsメソッドを使って先のプログラムを書き換えたものです。

よく読まれている記事

1

DeepFaceLab 2.0とは DeepFaceLab 2.0は機械学習を利用して動画の顔を入れ替えるツールです。 以前にDeepFaceLab 1.0を記事としてアップしていましたが、2.0は以 ...

2

自作PCで、多くのパーツをCorsair製品で揃えたので、iCUEでライティング制御していきました。 私のPCでは、表示されている4つのパーツが制御されています。ここで、HX750i電源ユニットは、L ...

3

コンピュータは有限桁の数値しか扱う事はできないので、桁数の多い場合や無限小数の場合は四捨五入され切り捨てられます。なので実際の数値とは多少の誤差が生じますが、これを丸め誤差といいます。 なので、コンピ ...

-Java