java 한글 체크
출처 : http://www.okjsp.net/seq/33317
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를 리턴합니다. 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()+”…”);
문자열중에 한글의 갯수, 특수문자의 갯수.. 등등 원하는 문자만을 자를수도 있습니다.
http://www.okjsp.net/seq/33317
정말 좋은 메소드에염.