ما هي السلسلة في جافا؟
في البرمجة، يتم استخدام السلاسل بشكل شائع جدًا. السلسلة في Java عبارة عن كائن يمثل سلسلة من الأحرف المدعومة بمصفوفة char. فئة السلسلة غير قابلة للتغيير في Java وتطبق واجهات قابلة للمقارنة وقابلة للتسلسل و CharSequence . دعونا ننظر إلى مثال لفهم.String str = "string"
هنا str هو تسلسل من 6 أحرف وهي s وt وr وi وn وg.
مؤشر صفيف شار | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
قيمة | س | ر | ص | أنا | ن | ز |
عنوان الذاكرة | 0x12824 | 0x12825 | 0x12826 | 0x12827 | 0x12828 | 0x12829 |
طرق تهيئة السلسلة
هناك طريقتان لتهيئة سلسلة.- سلسلة حرفية
- مشغل جديد
سلسلة حرفية
يتم استخدام الطريقة الأسهل والأكثر مباشرة للإعلان عن سلسلة في المثال أعلاه. عندما يقوم المترجم بترجمة سلسلة حرفية، يتم تحويلها دائمًا إلى كائن السلسلة.String str = "string";
مشغل جديد
يمكننا أيضًا تهيئة سلسلة باستخدام العامل الجديد.String strNew = new String("using new operator");
مثال
import java.io.*;
import java.lang.*;
class StringInitializationExample {
public static void main(String[] args)
{
//declare java string with a string literal
String str = "a string literal";
System.out.println("String str = " + str);
//declare string using new operator
String strNew = new String("using new operator");
System.out.println("String strNew = " + strNew);
}
}
انتاج |
String str = سلسلة حرفية String strNew = باستخدام عامل تشغيل جديد
سلسلة مقابل StringBuilder مقابل StringBuffer
لقد ناقشنا بالفعل ما هي فئة السلسلة، لذلك سنناقش الفئتين الأخريين والغرض منهما، إلى جانب السبب وراء تقديم Java لهاتين الفئتين في حين أن لديها بالفعل فئة السلسلة بالنسبة لنا. من الأفضل أن تذهب إلى الأعلى وتجري مراجعة لفئة السلسلة لفهمها بطريقة أفضل.سبب
كما نعلم أن كائن فئة السلسلة غير قابل للتغيير، لذلك عندما نحتاج إلى تغيير السلسلة، فإنه لا يغير الكائن الحالي أبدًا ولكن يتم تخزين القيمة المتغيرة دائمًا ككائن سلسلة جديد. لذا، إذا أردنا تغيير القيمة مرارًا وتكرارًا، فسيتم استهلاك الذاكرة أيضًا. مع الحفاظ على هذه النقطة، زودتنا Java بفئات StringBuilder و StringBuffer . الآن سوف نرى مدى فائدتها في هذا السيناريو.StringBuffer
السلسلة عبارة عن تمثيل لتسلسل أحرف غير قابل للتغيير، لكن StringBuffer عبارة عن تسلسل أحرف قابل للتغيير . يستخدم معظم أساليب فئة السلسلة بالإضافة إلى عدد قليل من الأساليب الخاصة به لتغيير محتويات وتسلسل الأحرف. إنه آمن للخيط لأن أساليبه متزامنة للاستخدام بواسطة سلاسل رسائل متعددة، مع الحفاظ على الترتيب التسلسلي. يقوم بتنفيذ واجهات Serializable و Appendable و CharSequence .بناء الجملة
StringBuffer str = new StringBuffer("Happy Java Programming");
StringBuilder
يمثل StringBuilder أيضًا تسلسل الأحرف القابل للتغيير. يوفر واجهة برمجة التطبيقات (API) المتوافقة مع فئة StringBuffer ولكنها ليست آمنة لمؤشر الترابط. لذا، عندما لا تكون هناك سلاسل رسائل متعددة، فمن الأفضل استخدام فئة StringBuilder لأنها أسرع من فئة StringBuffer في كثير من الحالات. الطرق الرئيسية لهذه الفئة هي الإدراج والإلحاق. كما أنه يطبق واجهات Serializable و Appendable و CharSequence .بناء الجملة
StringBuilder str = new StringBuilder("Happy Java Programming");
عمليات السلسلة
في Java ، يمكننا إجراء عمليات سلسلة مثل التسلسل والمقارنة والتقسيم وإيجاد الطول واستبدال السلاسل وما إلى ذلك.طرق السلسلة
توفر فئة Java String طرقًا مختلفة لمعالجة السلاسل أو تنفيذ العمليات التي تمت مناقشتها أعلاه. دعونا نلقي نظرة على الجدول أدناه لبعض طرق السلسلة هذه.طُرق | وصف |
---|---|
شار شارات (فهرس كثافة العمليات) | تقوم بإرجاع قيمة char في الفهرس المقدم. |
سلسلة مترابطة (سلسلة سلسلة) | تقوم بإرجاع سلسلة من خلال دمج سلسلة محددة في نهاية هذه السلسلة. |
منطقي يحتوي على (CharSequence s) | يتم إرجاعه صحيحًا إذا كانت السلسلة تحتوي على تسلسل محدد لقيم char. |
محتوى منطقي يساوي (CharSequence CS) | إنه يطابق السلسلة مع تسلسل الحرف المقدم. |
محتوى منطقي يساوي (StringBuffer sb) | إنه يطابق السلسلة مع المخزن المؤقت للسلسلة المتوفرة. |
نهايات منطقية مع (لاحقة السلسلة) | يقارن نهاية السلسلة باللاحقة المقدمة. |
منطقية يساوي (كائن كائن) | إنه يطابق السلسلة مع الكائن المقدم. |
منطقية يساويIgnoreCase(سلسلة أخرىسلسلة) | تقارن هذه الطريقة سلسلتين دون أخذ حساسية حالة الأحرف في الاعتبار. |
تنسيق سلسلة ثابت (تنسيق سلسلة، كائن… وسيطات) | تقوم بإرجاع السلسلة المنسقة باستخدام التنسيق والوسائط المتوفرة. |
بايت getBytes () | تستخدم هذه الطريقة مجموعة الأحرف الافتراضية للنظام الأساسي لتشفير السلسلة في تسلسل من البايتات، والتي يتم بعد ذلك تخزينها في مصفوفة بايت جديدة. |
getChars باطلة (بداية int، نهاية int، char [] dst، int dstBegin) | يقوم بنسخ الأحرف من السلسلة إلى صفيف الأحرف الوجهة. |
رمز التجزئة الدولي () | تقوم بإرجاع رمز التجزئة للسلسلة. |
مؤشر كثافة العمليات (كثافة العمليات الفصل) | تقوم بإرجاع فهرس الحرف المحدد الذي يحدث أولاً من السلسلة. |
int فهرس (int ch، int fromIndex) | تقوم بإرجاع فهرس الحرف المحدد الذي يحدث أولاً بدءًا من الفهرس المقدم في هذه السلسلة. |
مؤشر كثافة العمليات (سلسلة سلسلة) | يبحث عن السلسلة الفرعية المتوفرة في السلسلة ويعيد الفهرس عند التواجد الأول. |
كثافة العمليات فهرس (سلسلة سلسلة، كثافة العمليات من فهرس) | يبدأ البحث عن السلسلة الفرعية المتوفرة في السلسلة من الفهرس المحدد ويعيد الفهرس عند التواجد الأول. |
سلسلة المتدرب () | تقوم هذه الطريقة بإرجاع التمثيل المتعارف عليه للسلسلة. |
كثافة العمليات lastIndexOf (كثافة العمليات الفصل) | تبحث هذه الطريقة عن الحرف المتوفر في السلسلة وتقوم بإرجاع فهرس آخر تكرار. |
كثافة العمليات lastIndexOf (كثافة العمليات ch، كثافة العمليات fromIndex) | تقوم هذه الطريقة بالبحث بشكل عكسي من الفهرس المحدد عن الحرف المقدم في السلسلة وإرجاع فهرس آخر تكرار. |
كثافة العمليات lastIndexOf (سلسلة سلسلة) | تبحث هذه الطريقة عن السلسلة الفرعية المتوفرة في السلسلة وترجع فهرس التكرار الأخير. |
int lastIndexOf (String str، int fromIndex) | تقوم هذه الطريقة بالبحث بشكل عكسي من الفهرس المحدد للسلسلة الفرعية المتوفرة في السلسلة وإرجاع فهرس التكرار الأخير. |
طول الباحث () | ترجع هذه الطريقة طول السلسلة. |
المطابقات المنطقية (سلسلة regex) | تقوم بإرجاع صحيح أو خطأ عن طريق مطابقة السلسلة مع التعبير العادي المقدم. |
استبدال السلسلة (char oldValue، char newValue) | تقوم هذه الطريقة بإرجاع سلسلة بعد استبدال كل القيمة القديمة المتوفرة بالقيمة الجديدة في السلسلة. |
سلسلة [] انقسام (سلسلة regex) | تبحث هذه الطريقة عن جميع المطابقات وفقًا للتعبير العادي المقدم في السلسلة وتقسمها حول هذه المطابقات. |
يبدأ منطقيًا بـ (بادئة السلسلة) | تقوم بإرجاع صحيح أو خطأ عن طريق اختبار السلسلة التي تبدأ بالبادئة المقدمة. |
سلسلة فرعية (int beginIndex) | تقوم هذه الطريقة بإرجاع سلسلة هي السلسلة الفرعية لهذه السلسلة. |
سلسلة إلىLowerCase() | يقوم بتحويل كافة أحرف السلسلة إلى أحرف صغيرة باستخدام قواعد اللغة الافتراضية. |
قطع السلسلة () | تقوم هذه الطريقة بإزالة كافة المسافات البيضاء البادئة واللاحقة من السلسلة وإعادتها. |
قيمة سلسلة ثابتة (شار ج) | تقوم بإرجاع تمثيل السلسلة للوسيطة char. |
مثال
import java.io.*;
import java.lang.*;
class JavaStringsExample {
public static void main(String[] args) {
//create a string
String greeting = "Hello! World";
System.out.println("String: " + greeting);
//getting the length of greeting object
int length = greeting.length();
System.out.println("Length: " + length);
//create first string
String first = "Java ";
System.out.println("First String: " + first);
//create second string
String second = "Programming";
System.out.println("Second String: " + second);
//joining two strings
String joinedString = first.concat(second);
System.out.println("Joined String: " + joinedString);
String jpf = "Java programming";
String jps = "Java programming";
String jpt = "Python programming";
//compare jpf and jps strings
boolean result1 = jpf.equals(jps);
System.out.println("Strings jpf and jps are equal: " + result1);
//compare jpf and jpt strings
boolean result2 = jpf.equals(jpt);
System.out.println("Strings jpf and jpt are equal: " + result2);
//converting jpf to uppercase
System.out.println("Upper case jpf: " + jpf.toUpperCase());
//replacing g character with v in jpf
System.out.println("Replacing g with v in jpf: "+jpf.replace("g", "v"));
}
}
انتاج |
سلسلة: مرحبا! الطول العالمي: 12 السلسلة الأولى: سلسلة Java الثانية: سلسلة البرمجة المرتبطة: سلاسل برمجة Java jpf و jps متساوية: السلاسل الحقيقية jpf و jpt متساوية: false الحالة العليا jpf: برمجة JAVA استبدال g بـ v في jpf: java provramminv
GO TO FULL VERSION