시소당
자바프로그램에서
한문장을 입력받아 단어, 공백, 탭의 갯수를 계산하려면..
어떤 클래스를 사용해야 하나요?
예를들어..BufferReader나..StringTokeniger같은...
또 그것들을 어떻게 사용하는지..예라도 들어주심 감사^^
이런 프로그램은 처음짜봐서...
많은 답변 부탁드립니다.
-------------------------------------------------------------------------------------
import java.io.*;
import java.util.regex.*;
class A {
public static void main(String[] args) throws Exception {
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String s = null;
while (true) {
System.out.print("문장을 입력하세요(끝내려면 Enter)=>");
s = r.readLine();
if ("".equals(s)) break;
System.out.print("----------------------------------------\n");
System.out.print("단어: " + count(s, "[^\\s]+") + "개, ");
System.out.print("공백: " + count(s, "\u0020") + "개, ");
System.out.print("탭 : " + count(s, "\t") + "개\n");
System.out.print("----------------------------------------\n");
}
}
static final int count(String target, String pattern) {
Pattern p = Pattern.compile(pattern);
Matcher matcher = p.matcher(target);
int c = 0;
for (int i = 0; matcher.find(i); c++, i = matcher.end());
return c;
}
}
-------------------------
실행 예제:
문장을 입력하세요(끝내려면 Enter)=>i am a boy
----------------------------------------
단어: 4개, 공백: 3개, 탭 : 0개
----------------------------------------
문장을 입력하세요(끝내려면 Enter)=>가나 다 abc 뒤에탭 탭한번더 마지막
----------------------------------------
단어: 6개, 공백: 3개, 탭 : 2개
----------------------------------------
출처 : 네이버지식인
http://kin.naver.com/detail/detail.php?d1id=1&dir_id=10106
&eid=Y7npOw1FvhZZ+9/z7ukkD+rEc2bdYrTR&qb=wNq52SBtYXRjaGVy