개발 공부

HashMap을 이용해 문자열에 있는 단어 수 세기

준군 2020. 9. 23. 17:12

이번 글에서는 주어진 문자열에 있는 각 단어의 수를 세는 방법에 대해서 알아보고자한다.

예를 들어서 "I am a boy. You are a boy. She is a girl" 이라는 문자열이 주어진다. 이때, 특수문자(점)은 무시하고 띄어쓰기마다 단어라고 가정하자.

결과적으로 나오는 단어와 횟수를 세면 아래와 같이 나온다.

I = 1

am = 1 

a = 3

boy = 2

you = 1

she = 1

girl = 1

is = 1

are = 1

 

본글에서는 HashMap을 이용하여 이 문제를 접근 하고자 한다. HashMap은 특정 Key 가 Value를 담고 있으므로 이 문제에서는 단어를 Key로 횟수를 Value로 해주면 된다. 문제를 접근 하는 단계를 나눠보자.

 

1. 주어진 문자열의 특수문자를 없애준다.

2. 문자열을 모두 소문자로 바꿔준다.

3. 띄어쓰기 마다 문자열을 나누어 문자열 배열을 생성해준다.

4. 문자열 배열을 순환하여 HashMap에 넣어주되 이미 존재하면 value를 1만큼 증가시킨다.

5. 마지막으로 각 단어와 횟수를 출력해준다.

 

25번 줄에서 forEach라는 메소드를 이용하여 HashMap을 순환하는 방식을 이용하였다.