未経験Javaエンジニア転職の記録

20代転職未経験エンジニア

文字列の中から特定の単語を見つけカウントするプログラム

文字列の中から特定の単語を見つけるプログラムを作る課題。

単語ではなく文字であれば、charAtとfor分の組み合わせてできるが、単語となると話が違う。

何とか解けたので、自分のためにもまとめておこうと思う。

 

 text1 = "this is a pan. that is a pan.";
 text2 = "is";
 int count = 0;
 if(text1.contains(text2)) { ・・・①
  count++;
   String[] arr = text1.split(text2, 2); ・・・②
   while(arr[1].contains(text2)) { ・・・③
    count++;
    arr = arr[1].split(text2, 2); ・・・④
  }
 }

 

 

①:text1とtext2をcontainsで含むかどうかを判定し、含むならcountを足す。

②:splitメソッドの第二引数に2を渡して、text1をtext2で2つに分割する。

2つと指定することで、文中に最初に登場するtext2をカウントできる。

それをString配列で受け取る。

③:text1を2つに分割した配列の後半の要素にtext2を含む限りwhileを回す。

④:後半の要素をtext2で分割し続け、countを加算し、whileを抜けるところでのcountがtext1の中のtext2の登場回数となる。

 

知っているメソッドを自分なりに組み合わせて作ったメソッドのため、改善点やよりよいプログラムがあるかと思うが、それは今後の伸びしろとして受け止めたい。