質問

文字列にアルファベットのみが含まれていて、[a-zA-Z] +よりも少し多くしたいのかどうかを判断するにはどうすればよいですか?ロケールによってアルファベットを判断する方法はありますか?

役に立ちましたか?

解決

文字 クラスには、などのメソッドがあります isLetter は、文字がメソッドのAPI仕様で定義されている文字であるかどうかを判断できるようにします。

を使用する別のアプローチもあります。文字がCharacter.UnicodeBlock クラス= web&ct = res&cd = 3&url = http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FUnicode&ei = btX6ScaQE9SSkAXds4nrBA&rct = j&q = unicode&usg = AFQjCNH4Pwv5L> jcoderrefer

たとえば、キャラクターが全角のカタカナキャラクターかどうかを判断する必要がありましたが、そのためには、 Character.UnicodeBlock.of メソッド:

boolean isKatakana = 
    Character.UnicodeBlock.of(c) == Character.UnicodeBlock.KATAKANA;

また、 String の特定のインデックスにある文字は、 charAt(int) メソッド。Unicodeコードポイントは 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