명품 자바 Programming
Chapter6 Ex7
Q :
ctrl-z가 입력될 때까지 키보드로부터 문자를 읽고 사용자가 입력한 문자열에서 단어를 분리하여 단어의 개수를 출력하는 프로그램을 작성하라. 단어는 공백으로 분리한다.
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | package chap6ex; import java.io.*; import java.util.StringTokenizer; public class CountWord { int count = 0; String temp = ""; StringBuffer strBuffer = new StringBuffer(); public void run() { readString(); String str = strBuffer.toString(); StringTokenizer strTokenizer = new StringTokenizer(str, " "); System.out.println(strTokenizer.countTokens()); } public void readString() { InputStreamReader rd = new InputStreamReader(System.in); try { while (true) { int c = rd.read(); if (c == -1) break; strBuffer.append((char) c); } } catch (IOException e) { System.out.println("입력 에러 발생"); } } public int countWord(String str) { StringTokenizer strTokenizer = new StringTokenizer(str, "%"); int result = strTokenizer.countTokens(); while (strTokenizer.hasMoreTokens()){ String token = strTokenizer.nextToken(); System.out.println("\n" + token); } return result; } public static void main(String[] args) { CountWord countWord = new CountWord(); countWord.run(); } } | cs |
고칠 점
Ctrl - Z 입력 전에 엔터를 쳐야 토큰 수가 출력되는데 왜 그런지 모르겠습니다...
아시는 분 피드백 부탁드립니다 ㅠㅜ
유용하셨다면 공감 버튼 ↓ 눌러주세요!
728x90
'# Language > Java' 카테고리의 다른 글
명품 JAVA 프로그래밍 7장 1번 (1) | 2018.07.22 |
---|---|
명품 JAVA 프로그래밍 7장 OpenChallenge (0) | 2018.07.22 |
명품 JAVA 프로그래밍 6장 8번 (0) | 2018.07.21 |
명품 JAVA 프로그래밍 6장 6번 (0) | 2018.07.21 |
명품 JAVA 프로그래밍 6장 5번 (0) | 2018.07.21 |
명품 JAVA 프로그래밍 6장 4번 (0) | 2018.07.21 |
명품 JAVA 프로그래밍 6장 3번 (0) | 2018.07.21 |