티스토리 뷰
[JAVA] String Language Detect
Charsequence 를 parameter 전달하는 경우 사용 할 수 있는 간단한 함수입니다.
English / Korean / Japanese 의 언어인지를 확인하여 True/False 를 Return 합니다.
해당 함수 내부에서 사용하는 char 을 비교해서 이용하는 부분을 활용해서 용도에 맞게 사용해도 됩니다.
/**
* Created by TheFinestArtist on 2014. 9. 2..
*/
public class LanguageDetector {
public enum Language {Korean, Japanese, English}
public static boolean isEnglish(CharSequence charSequence) {
boolean isEnglish = true;
for (char c : charSequence.toString().toCharArray()) {
if (Character.UnicodeBlock.of(c) != Character.UnicodeBlock.BASIC_LATIN) {
isEnglish = false;
break;
}
}
return isEnglish;
}
public static boolean hasKorean(CharSequence charSequence) {
boolean hasKorean = false;
for (char c : charSequence.toString().toCharArray()) {
if (Character.UnicodeBlock.of(c) == Character.UnicodeBlock.HANGUL_JAMO
|| Character.UnicodeBlock.of(c) == Character.UnicodeBlock.HANGUL_COMPATIBILITY_JAMO
|| Character.UnicodeBlock.of(c) == Character.UnicodeBlock.HANGUL_SYLLABLES) {
hasKorean = true;
break;
}
}
return hasKorean;
}
public static boolean hasJapanese(CharSequence charSequence) {
boolean hasJapanese = false;
for (char c : charSequence.toString().toCharArray()) {
if (Character.UnicodeBlock.of(c) == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
|| Character.UnicodeBlock.of(c) == Character.UnicodeBlock.HIRAGANA
|| Character.UnicodeBlock.of(c) == Character.UnicodeBlock.KATAKANA
|| Character.UnicodeBlock.of(c) == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| Character.UnicodeBlock.of(c) == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS
|| Character.UnicodeBlock.of(c) == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION) {
hasJapanese = true;
break;
}
}
return hasJapanese;
}
}
혹은 위 English 체크문에서 특수문자, 숫자, 기호 들이 포함된 경우도 LATIN 에 포함되기 때문에
아래와 같이 ASCII Code가 영어 인지만 체크해줄수도 있습니다.
이와 유사하게 ASCII 코드를 활영해서 특수문자 범위만을 체크해서 사용 할 수도 있습니다.
if ( (MsgCharacter >= 65) && (MsgCharacter <= 90)
|| ((MsgCharacter >= 97) && (MsgCharacter <= 122))) {
Log.d(TAG, FUNC + "MsgCharacter=" + Character.toString(MsgCharacter) + " is English");
}
'Computer > JAVA' 카테고리의 다른 글
[Java] Random 난수 값 생성 (0) | 2020.11.26 |
---|---|
[JAVA] Convert Char to String, String to Char (0) | 2020.08.09 |
[JAVA] jar 파일 keystore 서명하여 배포하기 (0) | 2020.04.22 |
[Javascript] Event Keycode Value Check Tool (0) | 2020.03.10 |
[JAVA] ArrayList 자료구조 활용하기 (0) | 2020.03.02 |
댓글