JavaRush /مدونة جافا /Random-AR /فئة السلسلة في جافا

فئة السلسلة في جافا

نشرت في المجموعة
تم تصميم فئة String في Java للعمل مع السلاسل في Java. جميع القيم الحرفية للسلسلة المحددة في برنامج Java (على سبيل المثال، "abc") هي مثيلات لفئة السلسلة. دعونا نلقي نظرة على خصائصه الرئيسية:
  1. يقوم الفصل بتنفيذ Serializableواجهات CharSequence. نظرًا لأنه متضمن في العبوة java.lang، فلا حاجة لاستيراده.
  2. فئة السلسلة في Java هي فئة نهائية ولا يمكن أن يكون لها أطفال.
  3. فئة السلسلة هي فئة غير قابلة للتغيير، مما يعني أنه لا يمكن تغيير كائناتها بعد إنشائها. أي عمليات على كائن سلسلة من شأنها أن تؤدي إلى كائن من فئة السلسلة ستؤدي إلى إنشاء كائن جديد.
  4. نظرًا لثباتها، فإن كائنات فئة السلسلة تكون آمنة ويمكن استخدامها في بيئة متعددة الخيوط.
  5. يمكن تحويل كل كائن في Java إلى سلسلة من خلال الطريقة toStringالتي ترثها جميع فئات Java من الفصل Object.
فئة السلسلة في جافا - 1

العمل مع سلسلة جافا

هذه إحدى الفئات الأكثر استخدامًا في Java. لديه طرق لتحليل أحرف معينة في سلسلة، ومقارنة السلاسل والبحث فيها، واستخراج سلاسل فرعية، وإنشاء نسخة من سلسلة مع تحويل كافة الأحرف إلى أحرف صغيرة وكبيرة، وغيرها. يمكن العثور على قائمة بجميع أساليب فئة السلسلة في الوثائق الرسمية . تطبق Java أيضًا آلية بسيطة للتسلسل (ربط السلاسل)، وتحويل العناصر الأولية إلى سلسلة والعكس صحيح. دعونا نلقي نظرة على بعض الأمثلة للعمل مع فئة السلسلة في Java.

إنشاء سلاسل

أسهل طريقة لإنشاء مثيل لفئة السلسلة هي تعيين قيمة سلسلة حرفية له:
String s = "I love movies";
ومع ذلك، تحتوي فئة String على العديد من المُنشئات التي تسمح لك بما يلي:
  • إنشاء كائن يحتوي على سلسلة فارغة
  • إنشاء نسخة من متغير السلسلة
  • إنشاء سلسلة بناءً على مصفوفة أحرف
  • إنشاء سلسلة بناءً على مصفوفة بايت (مع مراعاة الترميزات)
  • إلخ.

إضافة سلسلة

تعد إضافة سلسلتين في Java أمرًا بسيطًا للغاية باستخدام ملحق +. تسمح لك Java بإضافة كل من المتغيرات والسلاسل الحرفية لبعضها البعض:
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
من خلال إضافة كائنات من فئة السلسلة مع كائنات من فئات أخرى، فإننا نقوم بتحويل الأخير إلى شكل سلسلة. يتم تحويل كائنات الفئات الأخرى إلى تمثيل سلسلة من خلال استدعاء أسلوب ضمني toStringعلى الكائن. ولنوضح ذلك بالمثال التالي:
public class StringExamples {
    public static void main(String[] args) {
        Human max = new Human("Max");
        String out = "java object: " + max;
        System.out.println(out);
        // Output: Java object: Person named Max
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

مقارنة السلسلة

لمقارنة السلاسل، يمكنك استخدام الطريقة equals():
public static void main(String[] args) {
    String x = "Test String";
    System.out.println("Test String".equals(x)); // true
}
عندما لا تكون حالة الأحرف مهمة بالنسبة لنا عند مقارنة السلاسل، نحتاج إلى استخدام الطريقة equalsIgnoreCase():
public static void main(String[] args) {
       String x = "Test String";
       System.out.println("test string".equalsIgnoreCase(x)); // true
}

تحويل كائن/بدائي إلى سلسلة

لتحويل مثيل لأي فئة Java أو أي نوع بيانات أولي إلى تمثيل سلسلة، يمكنك استخدام الطريقة String.valueOf():
public class StringExamples {
    public static void main(String[] args) {
        String a = String.valueOf(1);
        String b = String.valueOf(12.0D);
        String c = String.valueOf(123.4F);
        String d = String.valueOf(123456L);
        String s = String.valueOf(true);
        String human = String.valueOf(new Human("Alex"));

        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(s);
        System.out.println(human);
        /*
        Output:
        1
        12.0
        123.4
        123456
        true
        Person named Alex
         */
    }

    static class Human {
        private String name;

        public Human(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "The Man with the Name" + name;
        }
    }
}

تحويل سلسلة إلى رقم

غالبًا ما تحتاج إلى تحويل سلسلة إلى رقم. تحتوي فئات غلاف النوع البدائي على طرق تخدم هذا الغرض بالضبط. كل هذه الطرق تبدأ بكلمة parse. فكر في ترجمة سلسلة نصية إلى أعداد صحيحة ( Integer) وأرقام كسرية ( Double) أدناه:
public static void main(String[] args) {
    Integer i = Integer.parseInt("12");
    Double d = Double.parseDouble("12.65D");

    System.out.println(i); // 12
    System.out.println(d); // 12.65
}

تحويل مجموعة من السلاسل إلى تمثيل سلسلة

إذا كنت بحاجة إلى تحويل جميع عناصر بعض مجموعات السلاسل إلى تمثيل سلسلة من خلال محدد عشوائي، فيمكنك استخدام الطرق التالية لفئة Java String:
  • join(CharSequence delimiter, CharSequence... elements)
  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
أين delimiterيوجد فاصل العناصر، وهو elementsعبارة عن صفيف سلسلة/مثيل مجموعة سلسلة. دعونا نلقي نظرة على مثال حيث نقوم بتحويل قائمة من السلاسل إلى سلسلة، مع فصل كل منها بفاصلة منقوطة:
public static void main(String[] args) {
    List<String> people = Arrays.asList(
            "Philip J. Fry",
            "Turanga Leela",
            "Bender Bending Rodriguez",
            "Hubert Farnsworth",
            "Hermes Conrad",
            "John D. Zoidberg",
            "Amy Wong"
    );

    String peopleString = String.join("; ", people);
    System.out.println(peopleString);
    /*
    Output:
    Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong
     */
}

تقسيم سلسلة إلى مجموعة من السلاسل

يتم تنفيذ هذه العملية بواسطة الطريقة split(String regex) الفاصلة عبارة عن تعبير عادي لسلسلة regex. في المثال أدناه سنقوم بالعملية المعاكسة لما قمنا به في المثال السابق:
public static void main(String[] args) {
    String people = "Philip J. Fry; Turanga Leela; Bender Bending Rodriguez; Hubert Farnsworth; Hermes Conrad; John D. Zoidberg; Amy Wong";

    String[] peopleArray = people.split("; ");
    for (String human : peopleArray) {
        System.out.println(human);
    }
    /*
    Output:
    Philip J. Fry
    Turanga Leela
    Bender Bending Rodriguez
    Hubert Farnsworth
    Hermes Conrad
    John D. Zoidberg
    Amy Wong
     */
}

تحديد موضع العنصر في السلسلة

في لغة جافا، توفر السلسلة مجموعة من الأساليب لتحديد موضع الحرف/السلسلة الفرعية في السلسلة:
  1. indexOf(int ch)
  2. indexOf(int ch, int fromIndex)
  3. indexOf(String str)
  4. indexOf(String str, int fromIndex)
  5. lastIndexOf(int ch)
  6. lastIndexOf(int ch, int fromIndex)
  7. lastIndexOf(String str)
  8. lastIndexOf(String str, int fromIndex)
أين:
  1. ch- الرمز الذي تبحث عنه ( char)
  2. str- دالة البحث
  3. fromIndex- الموضع الذي يتم البحث منه عن العنصر
  4. الأساليب indexOf- إرجاع موضع العنصر الأول الذي تم العثور عليه
  5. الأساليب lastIndexOf- إرجاع موضع العنصر الأخير الذي تم العثور عليه
إذا لم يتم العثور على العنصر الذي تبحث عنه، فسوف ترجع الطرق السطر -1. دعونا نحاول العثور على الرقم التسلسلي للأحرف A, K, Z, Яفي الأبجدية الإنجليزية، ولكن ضع في اعتبارك أن فهرسة الأحرف في سلسلة في Java تبدأ من الصفر:
public static void main(String[] args) {
    String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    System.out.println(alphabet.indexOf('A')); // 0
    System.out.println(alphabet.indexOf('K')); // 10
    System.out.println(alphabet.indexOf('Z')); // 25
    System.out.println(alphabet.indexOf('Я')); // -1
}

استخراج سلسلة فرعية من سلسلة

لاستخراج سلسلة فرعية من سلسلة، توفر فئة السلسلة في Java الطرق التالية:
  • substring(int beginIndex)
  • substring(int beginIndex, int endIndex)
دعونا نلقي نظرة على كيف يمكننا استخدام أساليب تحديد موضع العنصر واستخراج السلسلة الفرعية للحصول على اسم الملف من مساره:
public static void main(String[] args) {
    String filePath = "D:\\Movies\\Futurama.mp4";
    int lastFileSeparatorIndex = filePath.lastIndexOf('\\');
    String fileName = filePath.substring(lastFileSeparatorIndex + 1);
    System.out.println(fileName); //9
}

تحويل السلسلة إلى حالة كبيرة/صغيرة:

توفر فئة السلسلة طرقًا لتحويل سلسلة إلى أحرف كبيرة وصغيرة:
  • toLowerCase()
  • toUpperCase()
دعونا نلقي نظرة على كيفية عمل هذه الأساليب باستخدام مثال:
public static void main(String[] args) {
    String fry = "Philip J. Fry";

    String lowerCaseFry = fry.toLowerCase();
    String upperCaseFry = fry.toUpperCase();

    System.out.println(lowerCaseFry); // philip j. fry
    System.out.println(upperCaseFry); // PHILIP J. FRY
}
تتم دراسة العمل مع فئة Java هذه في المستويات الأولية لدورة JavaRush عبر الإنترنت:

مصادر إضافية

تتوفر أيضًا معلومات حول فئة String في مقالات أخرى في مجتمع JavaRush:
  1. السلاسل في Java - تتناول هذه المقالة بعض الأساسيات حول العمل مع السلاسل في Java.
  2. سلسلة جافا. أسئلة وأجوبة المقابلة، الجزء الأول - تناقش هذه المقالة أسئلة المقابلة حول هذا الموضوع String، وتقدم أيضًا إجابات للأسئلة مع شرح وأمثلة على التعليمات البرمجية.
  3. السلاسل النصية في Java (الفئة java.lang.String) - توفر هذه المقالة تحليلاً أعمق لفئة السلسلة، وتناقش أيضًا تعقيدات العمل مع هذه الفئة.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION