質問
文字列にアルファベットのみが含まれていて、[a-zA-Z] +よりも少し多くしたいのかどうかを判断するにはどうすればよいですか?ロケールによってアルファベットを判断する方法はありますか?
解決
文字
クラスには、などのメソッドがあります isLetter
は、文字がメソッドのAPI仕様で定義されている文字であるかどうかを判断できるようにします。
を使用する別のアプローチもあります。文字が
たとえば、キャラクターが全角のカタカナキャラクターかどうかを判断する必要がありましたが、そのためには、 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。*パッケージでは到達できません。
所属していません StackOverflow