문제

문자열이 알파벳 만 포함하고 [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를 사용하여 도달 할 수 없습니다.* 패키지.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top