وظائف السلسلة في Java | سلسلة جافا [مع أمثلة]
نشرت: 2020-12-01جدول المحتويات
مقدمة
اكتسبت Java الكثير من الاحترام بين المبرمجين بسبب دعم البرمجة الموجهة للكائنات والوظائف المحددة مسبقًا لأنواع البيانات المقدمة. السلاسل هي أحد أنواع البيانات المؤثرة التي توفرها جافا.
فهي غير قابلة للتغيير ويتم تخزينها في منطقة الكومة في كتلة ذاكرة منفصلة تسمى String Constant Pool. هناك العديد من الوظائف المحددة مسبقًا للسلاسل في جافا ، فلنستكشفها!
المهام
charAt ()
للوصول إلى الحرف في موضع معين ، لا نحتاج إلى حلقة للتكرار إلى هذا الفهرس ، تقوم وظيفة charAt () بالعمل الشاق نيابة عنك !. دالة charAt () ترجع الحرف في موضع معين في السلسلة ، تذكر أن الفهرس يبدأ من 0 في جافا.
يتم تعريف هذه الوظيفة بمعدِّل الوصول على أنها عامة وتقوم بإرجاع حرف. تتوقع هذه الطريقة عددًا صحيحًا كمعامل والوصول إلى الوظيفة بمعامل أكبر من طول السلسلة يُرجع استثناء IndexOutOfBounds ، وهو استثناء لوقت التشغيل.
| String str = " مرحبًا هناك " ؛ الحرف الأول = str . charAt ( 0 ) ؛ الحرف الثاني = str . charAt ( 1 ) ؛ النظام . خارج . println (أول + " " + ثانية) ؛ |
سيعطي المقتطف أعلاه "h e" كمخرج لأن المتغير أولاً يتم تعيينه بالحرف "h" ويتم تعيين المتغير الثاني بالحرف "e".
قارن إلى () ومقارنة حالة ()
لن تعمل مقارنة سلسلتين مع عامل التشغيل == في جافا ، لأنها تتحقق مما إذا كان عنوان كل من المتغيرات والعودة صحيحة إذا كان كلا المتغيرين لهما نفس العنوان. لذلك فشل عامل التشغيل == في مقارنة محتوى السلاسل ، وهنا تأتي طريقة CompareTo () موضع التنفيذ.

تتوقع هذه الطريقة العامة سلسلة أو كائن كمعامل يتم مقارنته وإرجاع قيمة عدد صحيح بعد مقارنة معجمية ، تذكر أن هذه الطريقة حساسة لحالة الأحرف. ولكن يمكننا استخدام CompareToIgnoreCase () للمقارنة مع تجاهل الأحرف الصغيرة والحروف الكبيرة.
| String str1 = " مرحبًا " ؛ String str2 = " مرحبًا " ؛ String str3 = " hello " ؛ int i1 = str1 . comapreTo (str2) ؛ int i2 = str2 . قارن إلى (str3) ؛ int i3 = str2 . قارنToIgnoreCase (str3) ، النظام . خارج . println (i1 + " " i2 + " " + i3) ؛ |
سيطبع المقتطف أعلاه '1 0 1' كإخراج لأن المتغير i1 مخصص بـ 1 نظرًا لأن كلا السلاسل متساوية ، يتم تعيين المتغير i2 بـ 0 نظرًا لأننا نقارن السلاسل حسب حساسية حالة الأحرف. وبالمثل ، يتم تعيين المتغير i3 بـ 1 لأننا نقارن السلاسل بتجاهل الحالات العلوية والسفلية.
concat ()
نظرًا لأن السلاسل غير قابلة للتغيير ، لا يمكننا تحرير قيمة سلسلة بدلاً من ذلك ، يمكننا فقط إعادة تعيين القيمة المحدثة إلى نفس المتغير. يمكننا استخدام طريقة concat () لربط كلا السلسلتين. تتوقع هذه الطريقة سلسلة كمعامل يجب أن تكون متسلسلة وتعيد سلسلة متسلسلة جديدة.
| سلسلة s1 = " الأول " ؛ السلسلة s2 = " الثانية " ؛ النظام . خارج . println (s1 . concat (s2)) ؛ |
المقتطف أعلاه يطبع سلسلة "الثانية الأولى".
قراءة: خصائص وفوائد JavaBeans: كيف يجب أن تستخدمها؟
يحتوي على()
التحقق مما إذا كانت السلسلة موجودة كسلسلة لاحقة لسلسلة أخرى هو الآن نزهة. يحتوي () التابع في java على وظيفة عامة منطقية ويعيد صحيحًا إذا كان هناك تسلسل من الأحرف في سلسلة و false إذا لم يكن كذلك. تتوقع هذه الطريقة تسلسل أحرف كمعامل وتعيد NullPointerException إذا تم تمرير كائن فارغ كمعامل.
| String s1 = " مرحبًا هناك " ؛ النظام . خارج . println (s1 . يحتوي على ( “ the “ )) ؛ //خط 1 النظام . خارج . println (s1 . يحتوي ( "" )) ؛ //خط 2 النظام . خارج . println (s1 . يحتوي على ( خالية )) ؛ // الخط 3 |
يطبع المقتطف أعلاه صحيحًا للسطر 1 لأن التسلسل "the" موجود في السلسلة ، وبالمثل يطبع السطر 2 True لأن التسلسل الفارغ يعيد True افتراضيًا. ويطرح السطر 3 NullPointerException منذ أن تم تمرير معلمة خالية.
مؤشر()
لقد رأينا دالة java التي تُرجع الحرف الموجود في فهرس معين ، ولكن ماذا لو أردنا فهرس التكرار الأول لحرف معين. استرخ ، تقوم وظيفة indexOf () بهذه المهمة. تم تجاوز هذه الوظيفة داخليًا بأربعة توقيعات مختلفة ، فلنستعرضها.

| String s1 = " مرحبًا ، مرحبًا ، مرحبًا ، مرحبًا هناك " ؛ النظام . خارج . println (s1 . indexOf ( " هناك " )) ؛ //خط 1 النظام . خارج . println (s1 . indexOf ( " هناك " ، 5 )) ؛ //خط 2 النظام . خارج . println (s1 . indexOf ( ' T ' )) ؛ // السطر 3 النظام . خارج . println (s1 . indexOf ( ' T ' ، 16 )) ؛ // السطر 4 |
في المقتطف أعلاه ، تتوقع الوظيفة المسماة في السطر 1 سلسلة وهذا يعيد فهرس البداية للتواجد الأول لسلسلة معينة ، ويطبع 4 في هذه الحالة. تتوقع الوظيفة التي تسمى في السطر 2 سلسلة مع عدد صحيح كمعلمات ، والآن يشير هذا العدد الصحيح إلى فهرس البداية حيث يبدأ البحث عن سلسلة معينة من هذا الفهرس ، ويطبع 37 في هذه الحالة.
الوظيفة التي تسمى في السطر 3 تتوقع حرفًا كمعامل ، وتعيد التواجد الأول للحرف المعطى ، وتطبع 15 في هذه الحالة. وبالمثل ، تتوقع الوظيفة الموجودة في السطر 4 حرفًا وعددًا صحيحًا.
حيث يمثل العدد الصحيح فهرس البداية ثم يبدأ البحث عن الحرف المعطى من هذا الحرف ، فإنه يطبع 26 في هذه الحالة. تذكر أن هذه الوظيفة حساسة تمامًا لحالة الأحرف ، والتي يمكننا رؤيتها في المقتطف أعلاه.
فارغ()
تقوم هذه الوظيفة بمهمة بسيطة ولكنها مفيدة للغاية من وجهة نظر المبرمج. ترجع هذه الدالة المنطقية True إذا كانت السلسلة فارغة و False إذا لم تكن كذلك. تساعد هذه الوظيفة في التحقق مما إذا كانت السلسلة فارغة قبل تنفيذ أي مهام على السلسلة لأن القليل من الوظائف تطرح استثناءًا للسلاسل الفارغة التي تقاطع تدفق التنفيذ.
| String s1 = " مرحبًا هناك " ؛ سلسلة s2 = "" ؛ النظام . خارج . println (s1 . isEmpty ()) ؛ //خط 1 النظام . خارج . println (s2 . isEmpty ()) ؛ //خط 2 |
يطبع المقتطف أعلاه False للسطر 1 و True للسطر 2.
الطول()
لم يعد اكتشاف طول سلسلة مهمة شاقة ، حيث تقوم دالة length () في جافا بإرجاع طول السلسلة المحددة. هذا يعيد صفرًا إذا تم تمرير سلسلة فارغة كمعامل.
| String s1 = " abcdefghijklmnopqrstuvwxyz " ؛ النظام . خارج . println (s1 . length ()) ؛ |
يطبع الرمز أعلاه 26.
يستبدل()
على عكس دالة indexOf () ، حيث ترجع التواجد الأول فقط للتسلسل ، تستبدل وظيفة replace () جميع الأحرف المحددة بالحرف الجديد المحدد وتعيد سلسلة جديدة. تتوقع هذه الوظيفة العامة حرفين ، على سبيل المثال c1 و c2 كمعلمات. حيث يقوم بالبحث عن جميع الأحرف التي تساوي c1 ويستبدلها بـ c2.
| String s1 = " helloHELLO " ؛ النظام . خارج . println (s1 . replace ( ' l ' ، ' p ' )) ؛ |
تذكر أن هذه الوظيفة حساسة لحالة الأحرف ، لذا فإن المقتطف أعلاه يطبع "heppoHELLO".
toLowerCase () و toUpperCase ()
يعد تحويل سلسلة إلى أحرف صغيرة أو العكس مهمة ممتعة في جافا ، والتي تحتاج فقط إلى فن سطر واحد من التعليمات البرمجية ، ووظائف toLowerCase () ، toUpperCase () هي الفنانين.
لا تتوقع هذه الوظائف العامة أي معلمات وتعيد سلسلة جديدة مع الأحرف الصغيرة والكبيرة المحدثة.
| String s1 = " مرحبًا هناك " ؛ النظام . خارج . println (s1 . toUpperCase ()) ؛ //خط 1 النظام . خارج . println (s1 . toLowerCase ()) ؛ //خط 2 |
في المقتطف أعلاه ، يطبع سطر 2 "مرحبًا" ويطبع السطر 1 "مرحبًا".

تعلم: التعامل مع الأحداث في Java: ما هذا وكيف يعمل؟
تقليم()
تتمثل الطريقة الساذجة لإزالة المسافات البيضاء الزائدة والرائدة في سلسلة في الحلقة فوق السلسلة وإزالة الحرف إذا كانت مسافة بيضاء ، ولكن هناك طريقة مثالية. تعمل وظيفة trim () على إزالة جميع المسافات البادئة والزائدة للسلسلة وإرجاع سلسلة جديدة. هذه الوظيفة العامة لا تتوقع أي معلمة.
| String s1 = " مرحبًا هناك " ؛ النظام . خارج . println (s1 . trim ()) ؛ |
المقتطف أعلاه يطبع "Hey There" وهو السلسلة الجديدة بعد قطع المسافات البيضاء الزائدة والقائدة.
خاتمة
لقد مررنا ببعض وظائف السلسلة في جافا ، وفهمنا كيف تعمل ، وماذا تتوقع ، وماذا ستعود. استكشف التواقيع التي تم تجاوزها لوظائف قليلة ، وتصفح نموذج مقتطف الشفرة من أجل الفهم الصحيح. الآن بعد أن أصبحت على دراية ببعض الوظائف ، ابدأ في استخدامها كلما لزم الأمر.
إذا كنت مهتمًا بمعرفة المزيد حول Java و OOPs وتطوير البرامج الكاملة ، تحقق من upGrad & IIIT-B's دبلوم PG في تطوير البرامج الكامل المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، 9 + المشاريع ، والتعيينات ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.
