JavaRush /وبلاگ جاوا /Random-FA /کلاس رشته در جاوا

کلاس رشته در جاوا

در گروه منتشر شد
کلاس String در جاوا برای کار با رشته ها در جاوا طراحی شده است. تمام حرف های رشته ای تعریف شده در یک برنامه جاوا (مثلاً "abc") نمونه هایی از کلاس String هستند. بیایید ویژگی های اصلی آن را بررسی کنیم:
  1. کلاس Serializableو رابط ها را پیاده سازی می کند CharSequence. از آنجایی که در بسته بندی موجود است java.lang، نیازی به واردات نیست.
  2. کلاس String در جاوا یک کلاس نهایی است و نمی تواند فرزند داشته باشد.
  3. کلاس String یک کلاس تغییرناپذیر است، به این معنی که اشیاء آن پس از ایجاد شدن قابل تغییر نیستند. هر عملیاتی بر روی یک شی String که منجر به یک شی از کلاس String شود، منجر به ایجاد یک شی جدید می شود.
  4. به دلیل تغییر ناپذیری، اشیاء کلاس String ایمن هستند و می توان از آنها در یک محیط چند رشته ای استفاده کرد.
  5. هر شی در جاوا را می توان از طریق روشی به رشته ای تبدیل کرد toStringکه تمام کلاس های جاوا از کلاس به ارث می برند Object.
کلاس رشته در جاوا - 1

کار با جاوا استرینگ

این یکی از پرکاربردترین کلاس ها در جاوا است. دارای روش هایی برای تجزیه و تحلیل کاراکترهای خاص در یک رشته، برای مقایسه و جستجوی رشته ها، استخراج زیر رشته ها، ایجاد یک کپی از یک رشته با تبدیل تمام کاراکترها به حروف کوچک و بزرگ و غیره. لیستی از تمام متدهای کلاس String را می توان در اسناد رسمی یافت . جاوا همچنین مکانیزم ساده ای را برای الحاق (اتصال رشته ها)، تبدیل اولیه ها به رشته و بالعکس پیاده سازی می کند. بیایید به چند نمونه از کار با کلاس String در جاوا نگاه کنیم.

ایجاد رشته ها

ساده ترین راه برای ایجاد یک نمونه از کلاس String این است که به آن مقدار یک string literal اختصاص دهیم:
String s = "I love movies";
با این حال، کلاس String سازنده های زیادی دارد که به شما اجازه می دهد:
  • یک شی حاوی یک رشته خالی ایجاد کنید
  • یک کپی از یک متغیر رشته ایجاد کنید
  • یک رشته بر اساس یک آرایه کاراکتر ایجاد کنید
  • ایجاد یک رشته بر اساس یک آرایه بایت (با در نظر گرفتن رمزگذاری ها)
  • و غیره.

اضافه کردن رشته

افزودن دو رشته در جاوا با استفاده از +. جاوا به شما این امکان را می دهد که هم متغیرها و هم رشته ها را به یکدیگر اضافه کنید:
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
با اضافه کردن اشیاء کلاس String به اشیاء کلاس های دیگر، دومی را به شکل رشته ای کاهش می دهیم. تبدیل اشیاء کلاس های دیگر به نمایش رشته ای از طریق فراخوانی متد ضمنی 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
}

تبدیل یک شی / اولیه به یک رشته

برای تبدیل نمونه ای از هر کلاس جاوا یا هر نوع داده اولیه به نمایش رشته، می توانید از روش زیر استفاده کنید 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;
        }
    }
}

تبدیل رشته به عدد

اغلب شما نیاز دارید که یک رشته را به عدد تبدیل کنید. کلاس‌های wrapper نوع اولیه متدهایی دارند که دقیقاً این هدف را دنبال می‌کنند. همه این روش ها با کلمه 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) The separator یک عبارت منظم رشته ای است انجام می شود 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
     */
}

تعیین موقعیت یک عنصر در یک رشته

در زبان جاوا، String مجموعه ای از روش ها را برای تعیین موقعیت یک کاراکتر/زیر رشته در یک رشته ارائه می کند:
  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, Яرا در الفبای انگلیسی پیدا کنیم، اما به خاطر داشته باشید که نمایه سازی کاراکترهای یک رشته در جاوا از صفر شروع می شود:
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
}

استخراج یک زیر رشته از یک رشته

برای استخراج یک زیر رشته از یک رشته، کلاس String در جاوا متدهایی را ارائه می دهد:
  • 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
}

تبدیل رشته به حروف بزرگ/کوچک:

کلاس String روش هایی را برای تبدیل رشته به حروف بزرگ و کوچک ارائه می دهد:
  • 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
}
کار با این کلاس جاوا در سطوح اولیه دوره آنلاین JavaRush مورد مطالعه قرار می گیرد:

منابع اضافی

اطلاعات مربوط به کلاس String نیز در مقالات دیگر در انجمن JavaRush ارائه شده است:
  1. رشته ها در جاوا - این مقاله اصول اولیه کار با رشته ها در جاوا را پوشش می دهد.
  2. رشته جاوا. سوالات و پاسخ های مصاحبه، قسمت 1 - این مقاله به بررسی سوالات مصاحبه در مورد موضوع می پردازد Stringو همچنین پاسخ سوالات را همراه با توضیحات و مثال های کد ارائه می دهد.
  3. رشته ها در جاوا (کلاس java.lang.String) - این مقاله تحلیل عمیق تری از کلاس String ارائه می دهد و همچنین پیچیدگی های کار با این کلاس را مورد بحث قرار می دهد.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION