ال

المحارف في Java

16 تمرينًا

نبذة عن المحارف

النوع الأولي char في Java هو تمثيل بـ 16 بت لمحرف Unicode واحد.

Note

يعتمد نوع char على مواصفة Unicode الأصلية، التي كانت تستخدم 16 بت لتمثيل المحارف. وهذا كافٍ لتغطية معظم الحروف الشائعة، ويغطي المحارف في النطاق من 0x0000 إلى 0xFFFF. وقد وسّعت المواصفة منذ ذلك الحين نطاق المحارف الممكنة حتى 0x01FFFF.

يمكن لعدة محارف char أن تكوّن سلسلة نصية، مثل "word"، كما يمكن معالجة محارف char كلٌّ على حدة. وتُحاط القيمة الحرفية من النوع char بعلامات اقتباس مفردة (مثل 'A').

char lowerA = 'a';
char upperB = 'B';

الحصول على محارف char من String

تُرجع الطريقة String.toCharArray محارف String على هيئة مصفوفة. وكما ورد في المصفوفات، يمكنك استخدام حلقة for للتنقل عبر المصفوفة.

String text = "Hello";
char[] asArray = text.toCharArray();

for (char ch: asArray) {
    System.out.println(ch);
}

// Outputs:
// H
// e
// l
// l
// o

صنف Character

توجد العديد من الطرق المدمجة في المكتبة لفحص محارف char ومعالجتها. ويمكن إيجادها كطرق ثابتة في صنف java.lang.Character. إليك بعض الأمثلة:

Character.isWhitespace(' ');    // true
Character.isWhitespace('#');    // false

Character.isLetter('a');        // true
Character.isLetter('3');        // false

Character.isDigit('6');         // true
Character.isDigit('?');         // false
Note

بعض الطرق في صنف Character لها نسخة محمّلة بحيث يمكنها أن تقبل إما char أو int. على سبيل المثال، للطريقة isDigit نسخة تقبل char وأخرى تقبل int. وكما ذُكر سابقًا، يمكن لنوع char أن يمثّل المحارف في النطاق من 0x0000 إلى 0xFFFF فقط. أما int، فيمكنه تمثيل جميع المحارف، ومن هنا جاءت النسخ المحمّلة التي تقبل int.

إضافة char إلى String

يمكن استخدام العامل + لإضافة char إلى String.

'a' + " banana"     // => "a banana"
"banana " + 'a'     // => "banana a"
Caution

احترس من ألّا تستخدم + لضم محرفَي char معًا لتكوين String! فجمع محرفَي char بهذه الطريقة يعطي int، وليس String! على سبيل المثال:

'b' + 'c';
// => 197 (not the String "bc")

وذلك لأن Java تُرقّي char إلى int (انظر 4.2 Primitive Types and Values من Java Language Specification).

ولكن عندما يكون هناك العديد من المحارف التي يجب إضافتها، فقد يكون استخدام StringBuilder أكثر كفاءة:

StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');

String builtString = builder.toString();
// => abc
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة

تعلّم المحارف