영어 대소문자와 띄어쓰기만으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.
첫 줄에 영어 대소문자와 띄어쓰기로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 띄어쓰기 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열의 앞과 뒤에는 공백이 있을 수도 있다.
첫째 줄에 단어의 개수를 출력한다.
The Curious Case of Benjamin Button
6
Mazatneunde Wae Teullyeoyo
3
Teullinika Teullyeotzi
2
str
)을 소문자(String.toLowerCase()
)나 대문자(String.toUpperCase()
)로 변환한 뒤 문자를 추출하기 위해 StringTokenizer
를 사용한다.cnt
)를 선언하고 반복문을 통하여 문자를 추출하며 단어의 갯수를 증가시킨다.import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
scanner.close();
str.toLowerCase(); // 대문자를 소문자로 변환
StringTokenizer st = new StringTokenizer(str); // 공백으로 구분하여 추출
int cnt = 0; // 단어의 갯수
while(st.hasMoreTokens()) { // 토큰이 남아있는 동안
st.nextToken(); // 토큰 하나씩 꺼내기
cnt++; // 단어의 갯수 증가
}
System.out.println(cnt);
}
}
감사합니다~ 양질의 자료감사합니다. 도움이 많이 됐어요.