سؤال

وكيف يمكنني تحديد ما إذا كان يحتوي على سلسلة الحروف الهجائية فقط، وأريد أن يكون أكثر قليلا من [ل-زا-Z] +، لذلك ليس هناك أي وسيلة لتحديد الحروف الهجائية التي كتبها لغة؟

هل كانت مفيدة؟

المحلول

Character فئة لديها مثل هذه الأساليب كما isLetter التي سوف تكون قادرة على تحديد ما إذا كان الحرف هو بريد إلكتروني كما هو محدد في المواصفات API للأسلوب.

وهناك أيضا طريقة أخرى لاستخدام Character.UnicodeBlock الطبقة التي هي قادرة على العودة ما إذا كان الحرف هو في كتلة الطابع الخاص ل<لأ href = "http://www.google.com/url؟sa=t&source=web&ct=res&cd=3&url=http٪ 3A٪ 2F٪ 2Fen.wikipedia.org٪ 2Fwiki٪ 2FUnicode والصناعات الاستخراجية = btX6ScaQE9SSkAXds4nrBA والقتالي = ي و ف = يونيكود وكيل الأمين العام = AFQjCNH4Pwv5L_jFFLS8yq6_BTq8cXTLKw "يختلط =" noreferrer "> يونيكود .

وعلى سبيل المثال، كان لي لتحديد ما إذا كان حرف ذات العرض الكامل كاتاكانا شخصية، ولتكون قادرة على القيام بذلك، واضطررت الى استخدام في 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();

لا يمكن الوصول إلى هذه المهمة من قبل وسائل جافا. * الحزم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top