الـ String هو data type أساسي بلغة Java، وبُستخدم تحديدا للتعامل مع النصوص، سواء كانت نصوص جاية من المستخدم أو من معالجة ملفات.
في طريقتين لإنشاء String بـ Java.
الطريقة الأولى - باستخدام double quotes مباشرة:
String str1 = "hello";
الطريقة الثانية - باستخدام الـ new String:
String message = new String("hello");
الفرق الأساسي بين الطريقتين هو موضوع الـ String Pool بالميموري.
لما بننشئ String بالطريقة الأولى، Java بتحفظه بمكان خاص بالميموري اسمه String Pool.
إذا كان عندنا متغيرين بنفس القيمة بالطريقة الأولى:
String str1 = "hello";
String message = "hello";
System.out.println(str1 == message); // true
النتيجة true مش لأنه القيم متطابقة، بل لأنه الاثنين محفوظين بنفس الـ reference بالـ String Pool.
أما بالطريقة الثانية، new String بينشئ reference جديد ومستقل:
String str1 = "hello"
اشترك في النشرة البريدية
دروس جديدة، مقالات، وأدوات مباشرة لبريدك.
النتيجة false رغم إنه القيم متطابقة، لأنه كل واحد له reference مختلف بالميموري.
ينصح باستخدام الطريقة الأولى لأنها أفضل من ناحية إدارة الميموري.
لدمج String مع String ثاني نستخدم عامل +:
String str1 = "hello";
String str2 = "world";
String message = str1 + str2;
System.out.println(message); // helloworldلإضافة مسافة بين الاثنين:
String message = str1 + " " + str2;
System.out.println(message); // hello worldString str1 = "hello";
System.out.println(str1.charAt(0)); // hالـ index بيبلش من الصفر:
| Index | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| حرف | h | e | l | l | o |
String str1 = "hello";
System.out.println(str1.length()); // 5هناك عمليات أخرى مفيدة على الـ String:
مقارنة النصوص باستخدام equals():
String str1 = "hello";
String str2 = "word";
System.out.println(str1.equals(str2)); // falseتحويل حالة الأحرف باستخدام toLowerCase() و toUpperCase():
String str1 = "Hello";
System.out.println(str1.toLowerCase()); // hello
System.out.println(str1.toUpperCase()); // HELLOاستبدال حرف أو نص باستخدام replace():
String str1 = "hello";
System.out.println(str1.replace("h", "j")); // jelloالـ Array هو container بيحمل عدة قيم من نفس الـ type، وله حجم ثابت.
الـ Array عنده ثلاث خصائص رئيسية:
int[] numbers = {80, 44, 95, 90, 100};الـ int[] بيرمز إنه هاي array of integers، أي مصفوفة أرقام.
الـ index بيبلش من الصفر:
| Index | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| قيمة | 80 | 44 | 95 | 90 | 100 |
System.out.println(numbers[0]); // 80
System.out.println(numbers[3]); // 90لو حاولنا نوصل لـ index خارج الحدود، Java رح تعطينا خطأ:
System.out.println(numbers[5]); // ArrayIndexOutOfBoundsExceptionint[] numbers = {80, 44, 95, 90, 100};
System.out.println(numbers[1]); // 44
numbers[1] = 100;
System.out.println(numbers[1]); // 100int[] numbers = {80, 44, 95, 90, 100};
System.out.println(numbers.length); // 5فرق مهم: الـ length بالـ array بتعطيك العدد الفعلي للعناصر يعني من 1 للعدد النهائي، أما الـ index آخر عنصر بيكون length - 1.
الـ Array الأساسي محدود، ما فينا نضيف عليه أو ننقص منه بعد ما تحددنا حجمه.
بالدروس الجاية رح نحكي عن data structures ثانية بتعطينا صلاحية تكبير أو تصغير الـ container ديناميكيا.