معالجة النصوص
مُقدَّم| English | المعنى |
|---|---|
| immutable/ɪˈmjuːtəbl/ | غير قابل للتعديل |
السلاسل الفهرسة
Stringهو تسلسل من الأحرف، مرقم من0.- في
"HELLO"، الفهرس0هو'H'، الفهرس1هو'E'، … الفهرس4هو'O'. s.length()يعطي عدد الأحرف؛ آخر فهرس هوlength() - 1.- أخطاء الإزاحة بمقدار واحد هنا هي أكثر أخطاء String شيوعاً.
الجزء الفرعي
s.substring(start, end)يعيد الأحرف من الفهرسstartإلى但不包括end."HELLO".substring(1, 3)→"EL"(الفهارس1و2، لا3).s.substring(start)(مع معامل واحد) يمتد منstartإلى النهاية.- طول النتيجة هو
end - start.
indexOf و equals
s.indexOf("lo")يعيد أول فهرس يظهر فيه النص، أو-1إذا لم يُوجد.s.equals(t)يختبر ما إذا كانت سلسلتان تحتويان على نفس الأحرف — تُرجعboolean.- استخدم
.equals()، وليس==، لمقارنة محتويات String. ==يقارن المراجع (العناوين)، وليس الأحرف.
السلاسل غير قابلة للتغيير
- String غير قابل للتغيير: لا يمكن تغيير أحرفه أبداً بعد إنشائه.
- أساليب مثل
substringوtoUpperCaseترجع String جديداً — لا تعدل الأصلية. s.toUpperCase();وحده لا يفعل شيئاً مرئياً؛ يجب تخزين النتيجة:s = s.toUpperCase();- عدم القابلية للتغيير هو سبب إرجاع أساليب String دائماً قيمة جديدة.
قارن محتويات String بـ .equals()، وليس ==. == يختبر ما إذا كان مرجعان يشيران إلى نفس الكائن، وليس ما إذا تطابق الأحرف — لذا قد يكون a == b false حتى لو كان كلاهما "cat". والسلاسل غير قابلة للتغيير: s.toUpperCase() تعيد String جديدا وتترك s دون تغيير إلا إذا أعدت تعيين s = s.toUpperCase();.
التعامل مع "HELLO":
"HELLO".length()→5؛ الفهرس0هو'H'، الفهرس4هو'O'."HELLO".substring(1, 4)→"ELL"(الفهارس1, 2, 3)."HELLO".indexOf("L")→2(أولL)؛.equals("hello")→false(اختلاف الحروف الكبيرة/الصغيرة).
String مفهرس من 0 (آخر فهرس length()-1). substring(start, end) يعيد الفهارس start إلى end-1؛ indexOf يجد موقعاً (أو -1). قارن المحتويات بـ .equals()، وليس ==. السلاسل غير قابلة للتغيير — الأساليب تُرجع String جديداً، لذا أعد التعيين للحفاظ على التغيير.
الفهرسة في HELLO بدءاً من 0
substring(1, 4) تأخذ الفهارس 1، 2، 3 → ELL.
في النص "HELLO"، أي حرف موجود عند الفهرس 0؟
Difficulty 1/5 · 100 coins + a small bonus on first completion today
النصوص مؤشّرة من 0، لذا الفهرس 0 هو 'H'.
ماذا تُرجع "HELLO".substring(1, 3)؟
Difficulty 1/5 · 100 coins + a small bonus on first completion today
الفهارس 1 و 2 (حتى ولكن لا تشمل 3) → EL.
لمقارنة ما إذا كان نصان يحتويان على نفس الأحرف، يجب عليك استخدام...
Difficulty 1/5 · 100 coins + a small bonus on first completion today
.equals() يقارن المحتوى؛ == تقارن الإشارات.
s.toUpperCase(); بمفردها لا تغير النص s في مكانه.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
النصوص غير قابلة للتعديل — يجب إعادة تعيين s = s.toUpperCase();.
ماذا تُرجع "HELLO".indexOf("L") (أول L)؟
Difficulty 2/5 · 140 coins + a small bonus on first completion today
أول 'L' موجود عند الفهرس 2.