CodeGym /مدونة جافا /Random-AR /سلاسل جافا
John Squirrels
مستوى
San Francisco

سلاسل جافا

نشرت في المجموعة

ما هي السلسلة في جافا؟

في البرمجة، يتم استخدام السلاسل بشكل شائع جدًا. السلسلة في 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
كما نعلم الآن أن المصفوفة غير قابلة للتغيير، مما يعني أنه لا يمكن تغييرها بعد التهيئة، وبالتالي فإن السلسلة غير قابلة للتغيير أيضًا.

طرق تهيئة السلسلة

هناك طريقتان لتهيئة سلسلة.
  1. سلسلة حرفية
  2. مشغل جديد

سلسلة حرفية

يتم استخدام الطريقة الأسهل والأكثر مباشرة للإعلان عن سلسلة في المثال أعلاه. عندما يقوم المترجم بترجمة سلسلة حرفية، يتم تحويلها دائمًا إلى كائن السلسلة.
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

خاتمة

نأمل أن تكون قد فهمت الآن ما هي السلاسل في Java وفئاتها وكيفية تنفيذ أساليبها المختلفة. لا تتردد في التدرب والعودة عندما تحتاج إلى مزيد من المساعدة. تعلم سعيد!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION