문제
문자열이 알파벳 만 포함하고 [a-za-z]+보다 더 많은 것을 갖고 싶으므로 로케일에 의해 알파벳을 결정할 수있는 방법이 있습니까?
해결책
그만큼 Character
클래스에는 다음과 같은 방법이 있습니다 isLetter
이 방법은 문자가 메소드의 API 사양에 정의 된 문자인지 확인할 수 있습니다.
사용의 또 다른 접근법도 있습니다 Character.UnicodeBlock
캐릭터가 특정 캐릭터 블록에 있는지 여부를 반환 할 수있는 클래스 유니 코드.
예를 들어, 캐릭터가 전체 너비인지 결정해야했습니다. 카타 카나 캐릭터, 그리고 그렇게하려면 나는 Character.UnicodeBlock.of
방법:
boolean isKatakana =
Character.UnicodeBlock.of(c) == Character.UnicodeBlock.KATAKANA;
또한 추가하려면 특정 색인의 캐릭터 String
사용하여 검색 할 수 있습니다 charAt(int)
방법 및 유니 코드 코드 포인트는 codePointAt(int)
방법.
다른 팁
또한 com.ibm.icu.text 패키지를 살펴보십시오. 예를 들어,이 스 니펫은 정의 된 언어로 모든 알파벳 문자를 반환합니다.
ULocale ulocale = com.ibm.icu.util.ULocale
.forLocale(Locale.forLanguageTag(language));
UnicodeSet set = LocaleData.getExemplarSet(ulocale, LocaleData.ES_STANDARD);
Iterator<String> iterator = set.iterator();
StringBuffer buf = new StringBuffer();
while (iterator.hasNext()) {
buf.append(iterator.next());
}
return buf.toString();
이 작업은 Java를 사용하여 도달 할 수 없습니다.* 패키지.
제휴하지 않습니다 StackOverflow