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()+"...");
문자열중에 한글의 갯수, 특수문자의 갯수.. 등등 원하는 문자만을 자를수도 있습니다.
정말 좋은 메소드에염.
'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 |