[BOJ]152単語の数(JAVA)


に質問
英語の大文字と小文字からなる文字列を指定します.この文字列にはいくつの語がありますか?この問題を解くプログラムを作成してください.しかし、1つの単語が何度も出てきたら、出てきた回数によって数えなければなりません.
入力
最初の行には、英語の大文字と小文字からなる文字列が表示されます.この文字列の長さは1000000を超えない.単語は1つのスペースで区切られており、連続してスペースが現れることはありません.また、文字列の前後にスペースがある場合があります.
しゅつりょく
1行目に単語の個数を出力します.
例1
▼入力
The Curious Case of Benjamin Button
▼出力
6
例2
▼入力
 Mazatneunde Wae Teullyeoyo
▼出力
3
例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);
    	}
    }