如何确定String是否仅包含字母表,并且我希望只有[a-zA-Z] +,那么有没有办法通过Locale确定字母?

有帮助吗?

解决方案

Character 类具有等方法 isLetter ,它将能够确定字符是否是方法的API规范中定义的字母。

还有另一种使用的方法 Character.UnicodeBlock 类,它能够返回角色是否在 Unicode

例如,我必须确定角色是否为全角片假名角色,为了能够这样做,我不得不使用 Character.UnicodeBlock.of 方法:

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

另外,要添加,可以使用 String 的某个索引处的字符。 api / java / lang / String.html #charAt(int)“rel =”noreferrer“> charAt(int) 方法,并且可以检索Unicode代码点href =“http://java.sun.com/javase/6/docs/api/java/lang/String.html#codePointAt(int)"rel =”noreferrer“> 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。* packages无法访问此任务。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top