String
النص String String
String نص غير قابل للتعديل (immutable) في Java — كل عملية تعديل تُنشئ نصًا جديدًا.
String في Java كائن وليس نوعًا بدائيًا. كل عملية مثل substring أو replace تُرجع نصًا جديدًا (لأن الأصل immutable). هذا آمن لكن قد يُبطئ عند التعديلات المتكررة — هنا يأتي StringBuilder.
الصياغة
String s = "مرحبًا";
String s2 = new String("أخرى");
s.length();
s.charAt(0);
s.substring(1, 4);
s.indexOf("ح");
s.contains("رح");
s.equals("مرحبًا");
s.toUpperCase();📄 مثال
String name = "Java";
name.length(); // 4
name.charAt(0); // 'J'
name.substring(1, 3); // "av"
name.toUpperCase(); // "JAVA"
name.contains("av"); // true
name.equals("java"); // false (حساسة لحالة الأحرف)أهم النقاط
| العنصر | الوظيفة |
|---|---|
| length() | طول النص |
| charAt(i) | الحرف بالفهرس i |
| substring(start, end) | جزء من النص من start إلى end-1 |
| indexOf(str) | فهرس أول ظهور للنص، أو -1 |
| contains(str) | هل يحتوي على النص الفرعي؟ |
| equals(str) | مقارنة المحتوى (لا تستخدم ==) |
| trim() | إزالة المسافات من البداية والنهاية |
| toUpperCase/lowerCase() | تحويل حالة الأحرف |
💡 نصائح عملية
- لا تستخدم == لمقارنة النصوص — استخدم equals() دائمًا
- لدمج نصوص بكثرة، استخدم StringBuilder بدل + المتكرر — أسرع بكثير
⚠️ أخطاء شائعة
- s == "مرحبًا" قد لا تعمل كما تتوقع — == تقارن المرجع لا المحتوى
- استخدام + في حلقة لدمج نصوص — يُنشئ نصًا جديدًا في كل مرة ويُبطئ البرنامج
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار JAVA الكامل بالعربي.