Character라는 클래스에
public static int getType(char ch)
getType이라는 메소드가 문자값을 받아 character category값을 리턴해줍니다.
  String str = "dasjfl1ie ^&*으샤으샤 ㅁㄴ";
  for(int i=0;i<str.length();i++){
     if(Character.getType(str.charAt(i)) == 5) System.out.print("이건한글이넹 :: ");

     System.out.println(str.charAt(i));
  }
이런식으로 값을 찍어보면 한글의 경우는 5를 리턴합니다.

리턴되는 캐릭터 카테고리값들은 static으로 선언되어 있습니다.
COMBINING_SPACING_MARK, CONNECTOR_PUNCTUATION, CONTROL, CURRENCY_SYMBOL, DASH_PUNCTUATION, DECIMAL_DIGIT_NUMBER, ENCLOSING_MARK, END_PUNCTUATION, FORMAT, LETTER_NUMBER, LINE_SEPARATOR, LOWERCASE_LETTER, MATH_SYMBOL, MODIFIER_LETTER, MODIFIER_SYMBOL, NON_SPACING_MARK, OTHER_LETTER, OTHER_NUMBER, OTHER_PUNCTUATION, OTHER_SYMBOL, PARAGRAPH_SEPARATOR, PRIVATE_USE, SPACE_SEPARATOR, START_PUNCTUATION, SURROGATE, TITLECASE_LETTER, UNASSIGNED, UPPERCASE_LETTER

이값들을 체크해서 입력된 문자가 어떤 문자인지 체크가 가능합니다.
그리고 게시판 리스트의 제목을 보여줄때 한글일경우와 영문일 경우를 체크해서
제목테이블 사이즈 만큼 보여주는것도 가능하겠죠...

String message = a_data[i][1];
int sublen = 0;


StringBuffer sbuf = new StringBuffer();
for(int j=0;(j<message.length()&&sublen<35);j++){
         if(Character.getType(message.charAt(j)) == 5) sublen=sublen+2;//한글
         else sublen++;//기타 영문,특수문자,공백
         sbuf.append(message.charAt(j));
}
out.println(sbuf.toString()+"...");
문자열중에 한글의 갯수, 특수문자의 갯수.. 등등 원하는 문자만을 자를수도 있습니다.

정말 좋은 메소드에염.

 

Tistory 태그: ,

'IT > Language' 카테고리의 다른 글

[java] 파일과 디렉토리  (1) 2008.09.20
[java] 객체 풀의 동작 원리  (0) 2008.09.20
javacore&heapdump  (0) 2008.09.19
@Override annotation  (0) 2008.09.16
시간구하기  (0) 2008.09.16

+ Recent posts