النوع الأولي char في Java هو تمثيل بـ16 بتة لمحرف واحد.
يمكن أن تتكوّن سلسلة نصية من عدة محارف من النوع char، مثل "word"، كما يمكن معالجة كل محرف من النوع char على حدة.
القيمة الحرفية من النوع char تُحاط بعلامة اقتباس مفردة (مثل 'A').
char lowerA = 'a';
char upperB = 'B';
String
تُرجع طريقة String.toCharArray محارف السلسلة النصية في هيئة مصفوفة.
وكما ذُكر في المصفوفات، يمكنك استخدام حلقة 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
char إلى سلسلة نصيةيمكن استخدام العامل + لإضافة محرف من النوع char إلى سلسلة نصية.
'a' + " banana" // => "a banana"
"banana " + 'a' // => "banana a"
احذر ألا تستخدم + لضم محرفين من النوع char معًا لتكوين سلسلة نصية!
إضافة محرفين بهذه الطريقة تعطي int، وليس سلسلة نصية!
على سبيل المثال:
'b' + 'c';
// => 197 (not the String "bc")
وذلك لأن Java ترفع المحرف من النوع char إلى int (انظر 4.2 الأنواع الأولية والقيم في مواصفات لغة Java).
ومع ذلك، عندما يكون عدد المحارف المراد إضافتها كبيرًا، فقد يكون من الأكثر كفاءة استخدام StringBuilder بدلًا من ذلك:
StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');
String builtString = builder.toString();
// => abc
في هذا التمرين ستُنفّذ مجموعة جزئية من الدوال المساعدة لمساعدة مطوّر على تنظيف أسماء SqueakyClean.
ستبني الطريقة clean تدريجيًا عبر 4 مهام.
يتكوّن اسم SqueakyClean الصالح من صفر أو أكثر من الحروف والشرطات السفلية.
في جميع الحالات، من المضمون أن السلسلة النصية المدخلة لن تكون null. لاحظ أن الطريقة clean يجب أن تعامل السلسلة النصية الفارغة على أنها صالحة.
نفّذ الطريقة (static) SqueakyClean.clean() لاستبدال أي مسافات بشرطات سفلية. ينطبق هذا أيضًا على المسافات في بداية السلسلة ونهايتها.
SqueakyClean.clean("my Id");
// => "my___Id"
kebab-case إلى camelCase
عدّل الطريقة (static) SqueakyClean.clean() لتحويل kebab-case إلى camelCase.
SqueakyClean.clean("a-bc");
// => "aBc"
عدّل الطريقة (static) SqueakyClean.clean() لتحويل لييت إلى نص عادي.
للتبسيط، سنستبدل فقط 4 و3 و0 و1 و7 بـ a وe وo وl وt على الترتيب.
SqueakyClean.clean("H3ll0 W0rld");
// => "Hello_World"
SqueakyClean.clean("4 73s7");
// => "a_test"
عدّل الطريقة (static) SqueakyClean.clean() لاستبعاد أي محارف ليست حروفًا.
SqueakyClean.clean("a$#.b");
// => "ab"
سجّل في Exercism لتتعلّم وتتقن Java عبر 26 مفهومًا158 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.