عدد الأحرف الكبيرة والصغيرة في سلسلة في Java

توضح هذه المقالة كيفية حساب عدد مثيلات الأحرف الكبيرة والصغيرة في سلسلة عن طريق ترميز برنامجنا أو باستخدام java 8 وواجهة برمجة تطبيقات الجوافة من google.

isUpperCase() و isLowerCase() في Java

تتكون هذه الطريقة من استعراض أحرف الجملة ورؤية كل منها ما إذا كانت صغيرة أو كبيرة. نحتاج إلى إنشاء عداد للأحرف الكبيرة وآخر للأحرف الصغيرة. في النهاية ، نعرض قيم المتغيرين.

للتحقق مما إذا كان الحرف صغيرا أم كبيرا ، تحتوي java على طريقتين:
boolean isUpperCase(char ch): ترجع هذه الطريقة true إذا كان الحرف كبيرا. يكون الحرف كبيرا إذا تم إرجاع فئته بواسطة Character.getType(ch) هو UPPERCASE_LETTER.
boolean isLowerCase(char ch): ترجع هذه الطريقة true إذا كان الحرف صغيرا. يكون الحرف صغيرا إذا تم إرجاع فئته بواسطة Character.getType(ch) هو LOWERCASE_LETTER.

public class nombre_majuscule_minuscule {

الفراغ العام الثابت الرئيسي (String[] args) {

سلسلة السلسلة = "Java هي لغة برمجة" +
"موجهة للكائنات تم إنشاؤها بواسطة Sun Microsystems" ؛

int nbr_min = nbr_min (سلسلة) ؛
int nbr_maj = nbr_maj (سلسلة) ؛

System.out.println("عدد الأحرف الصغيرة"+nbr_min);
System.out.println ("رقم الأحرف الكبيرة" +nbr_maj);

}

int ثابت خاص nbr_maj (سلسلة سلسلة) {
int counter = 0;
ل (int i = 0 ؛ i< طول السلسلة (); i++){
char ch = string.charAt(i);
if (Character.isLowerCase (ch))
counter ++ ؛
}
عداد العودة ؛
}

int ثابت خاص nbr_min (سلسلة سلسلة) {
int counter = 0 ؛
ل (int i = 0 ؛ i< طول السلسلة (); i++){
char ch = string.charAt(i);
if (Character.isUpperCase (ch))
counter ++ ؛
}
عداد العودة ؛
}
}
تنفيذ هذا الرمز:

رقم الأحرف الصغيرة 4
رقم الأحرف الكبيرة 68

يمكنك إنشاء الإصدار العودي لكلتا الطريقتين  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >nbr_min()  و  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >nbr_maj ()< / الامتداد >. هذه المرة قررنا برمجة الطريقتين اللتين قدمتهما جافا isUpperCase () < / span> و < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >isLowerCase()، استنادا إلى نطاق رمز ASCII للأحرف الصغيرة والأحرف الأبجدية.

private static int nbr_maj_recursive(سلسلة سلسلة، int i) {
/*إذا وصلت إلى حجم السلسلة
* إرجاع 0
*/
if(string.length ()-i==0)
إرجاع 0;
/ * وإلا فإننا نتحقق من الحرف التالي * /
else {
char ch = string.charAt(i);
إذا (estUpper (ch))
/ * زيادة i والعد واحد
* حرف كبير * /
إرجاع nbr_maj (سلسلة ، ++ i) +1 ؛
}
إرجاع nbr_maj (سلسلة ، ++ i) ؛
}
إعلان الطريقة  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >nbr_min_recursive()  التغييرات فقط على مستوى التحقق من نوع الحرف الذي يتم إجراؤه باستخدام الطريقة  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >isSmallcase().

private int static int nbr_min_recursive(سلسلة سلسلة، int i) {
if(string.length ()-i==0)
إرجاع 0;
else{
char ch = string.charAt(i);
if (isSmallcase (ch))
إرجاع nbr_min (سلسلة ، ++ i) + 1 ؛
}
إرجاع nbr_min (سلسلة ، ++ i) ؛
}
The Method  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" > isالأحرف الكبيرة () < / span >  يكافئ < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >isUpperCase () < / span>.

< pre class = "prettyprint lang-java" > منطقية ثابتة isUpperCase (char ch) {
int ascii = (int) ch ؛
//[A.. Z]
إذا((ascii>=65 & & ASCII<=90)
//الحروف المحركة
|| (أسكي>=192 & & ascii<=223))
إرجاع صحيح؛
إرجاع خاطئ ؛
}الطريقة  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >isTiny()  يكافئ < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >isLowerCase().

static boolean isSmallcase(char ch){
int ascii = (int) ch;
//[a.. z]
إذا((ascii>=97 & & ASCII<=122)
// حروف معلمة
|| (أسكي>=224 & & ascii<=255))
إرجاع صحيح؛
إرجاع خاطئ ؛
}

Java 8

باستخدام Java 8 ، يمكنك حساب عدد الأحرف الكبيرة والصغيرة. سنسمي الطريقة  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >أحرف () < / سبان>  والتي ستعود أ < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >إنترم< / سبان>  ومن هناك ، سنقوم بتصفية الأحرف الكبيرة والصغيرة عن طريق تمرير مرشح. في النهاية ، سنستخدم العملية  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >العد () < / الامتداد >  للعثور على عدد مثيلات.

public void compter_majuscules_java8() {

عبارة السلسلة = "هذا اختبار";

عداد طويل = phrase.chars () .filter (حرف :: isUpperCase) .count ();
}
ولحساب الأحرف الصغيرة، افعل هذا:

public void compter_minuscules_java8() {

عبارة السلسلة = "هذا اختبار";

عداد طويل = phrase.chars () .filter (حرف :: isLowerCase) .count ();
}

Google Guava

تستخدم واجهة برمجة تطبيقات الجوافة أيضا لتحديد العدد الإجمالي للأحرف الكبيرة والصغيرة في سلسلة. يمكنك التفكير في: < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >تشارت ماتشر< / سبان>  كمجموعة من الأحرف ، لذلك عند استخدام ChartMatcher.JAVAUPPERCASE فهذا يعني أي حرف كبير. الطريقة  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >المطر من () < / الامتداد >  سيزيل جميع الأحرف غير الكبيرة.


public void compter_majuscules_java8() {

عبارة السلسلة = "هذا اختبار" ؛

عداد طويل = CharMatcher.JAVA_UPPER_CASE.retainFrom (عبارة) .length ();
}
ولحساب الأحرف الصغيرة، افعل هذا:

public void compter_minuscules_java8() {

عبارة السلسلة = "هذا اختبار";

عداد طويل = CharMatcher.JAVA_LOWER_CASE.retainFrom(عبارة).length ();
}