JavaRush /Blog Java /Random-MS /Kelas rentetan di Jawa

Kelas rentetan di Jawa

Diterbitkan dalam kumpulan
Kelas String di Jawa direka untuk berfungsi dengan rentetan di Jawa. Semua literal rentetan yang ditakrifkan dalam program Java (contohnya, "abc") adalah contoh kelas String. Mari kita lihat ciri-ciri utamanya:
  1. Kelas melaksanakan Serializabledan antara muka CharSequence. Memandangkan ia termasuk dalam pakej java.lang, ia tidak perlu diimport.
  2. Kelas String di Java ialah kelas akhir dan tidak boleh mempunyai anak.
  3. Kelas String ialah kelas tidak berubah, bermakna objeknya tidak boleh diubah selepas ia dicipta. Sebarang operasi pada objek String yang akan menghasilkan objek kelas String akan menghasilkan penciptaan objek baharu.
  4. Oleh kerana kebolehubahannya, objek kelas String selamat untuk benang dan boleh digunakan dalam persekitaran berbilang benang.
  5. Setiap objek dalam Java boleh ditukar kepada rentetan melalui kaedah toStringyang diwarisi oleh semua kelas Java daripada kelas tersebut Object.
Kelas rentetan dalam Java - 1

Bekerja dengan Java String

Ini adalah salah satu kelas yang paling biasa digunakan di Jawa. Ia mempunyai kaedah untuk menganalisis aksara tertentu dalam rentetan, untuk membandingkan dan mencari rentetan, mengekstrak subrentetan, mencipta salinan rentetan dengan semua aksara ditukar kepada huruf kecil dan besar, dan lain-lain. Senarai semua kaedah kelas String boleh didapati dalam dokumentasi rasmi . Java juga melaksanakan mekanisme mudah untuk penggabungan (rentetan penghubung), menukarkan primitif kepada rentetan dan sebaliknya. Mari lihat beberapa contoh bekerja dengan kelas String di Java.

Mencipta Rentetan

Cara paling mudah untuk mencipta contoh kelas String adalah dengan memberikan nilai literal rentetan:
String s = "I love movies";
Walau bagaimanapun, kelas String mempunyai banyak pembina yang membolehkan anda:
  • buat objek yang mengandungi rentetan kosong
  • buat salinan pembolehubah rentetan
  • buat rentetan berdasarkan tatasusunan aksara
  • buat rentetan berdasarkan tatasusunan bait (dengan mengambil kira pengekodan)
  • dan lain-lain.

Penambahan rentetan

Menambah dua rentetan dalam Java agak mudah menggunakan +. Java membolehkan anda menambah kedua-dua pembolehubah dan literal rentetan antara satu sama lain:
public static void main(String[] args) {
    String day = "Day";
    String and = "And";
    String night = "Night";

    String dayAndNight = day + " " + and + " " + night;
}
Dengan menambah objek kelas String dengan objek kelas lain, kami mengurangkan yang terakhir kepada bentuk rentetan. Menukar objek kelas lain kepada perwakilan rentetan dilakukan melalui panggilan kaedah tersirat toStringpada objek. Mari kita tunjukkan ini dengan contoh berikut:
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;
        }
    }
}

Perbandingan rentetan

Untuk membandingkan rentetan, anda boleh menggunakan kaedah equals():
public static void main(String[] args) {
    String x = "Test String";
    System.out.println("Test String".equals(x)); // true
}
Apabila kes tidak penting kepada kami apabila membandingkan rentetan, kami perlu menggunakan kaedah equalsIgnoreCase():
public static void main(String[] args) {
       String x = "Test String";
       System.out.println("test string".equalsIgnoreCase(x)); // true
}

Menukar objek/primitif kepada rentetan

Untuk menukar contoh mana-mana kelas Java atau mana-mana jenis data primitif kepada perwakilan rentetan, anda boleh menggunakan kaedah 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;
        }
    }
}

Menukar rentetan kepada nombor

Selalunya anda perlu menukar rentetan kepada nombor. Kelas pembalut jenis primitif mempunyai kaedah yang sesuai dengan tujuan ini. Semua kaedah ini bermula dengan perkataan parse. Pertimbangkan terjemahan rentetan kepada nombor integer ( Integer) dan pecahan ( Double) di bawah:
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
}

Menukar koleksi rentetan kepada perwakilan rentetan

Jika anda perlu menukar semua elemen beberapa koleksi rentetan kepada perwakilan rentetan melalui pembatas sewenang-wenangnya, anda boleh menggunakan kaedah berikut bagi kelas Rentetan Java:
  • join(CharSequence delimiter, CharSequence... elements)
  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
Di manakah delimiterpemisah elemen, dan elementsmerupakan contoh tatasusunan rentetan / koleksi rentetan. Mari lihat contoh di mana kita menukar senarai rentetan kepada rentetan, memisahkan setiap satu dengan koma bertitik:
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
     */
}

Membahagikan rentetan kepada tatasusunan rentetan

Operasi ini dilakukan dengan kaedah split(String regex) Pemisah ialah ungkapan biasa rentetan regex. Dalam contoh di bawah, kami akan melakukan operasi yang bertentangan dengan apa yang kami lakukan dalam contoh sebelumnya:
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
     */
}

Menentukan kedudukan unsur dalam garisan

Dalam bahasa Java, String menyediakan satu set kaedah untuk menentukan kedudukan aksara/subrentetan dalam rentetan:
  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)
di mana:
  1. ch— simbol yang anda cari ( char)
  2. str- rentetan carian
  3. fromIndex— kedudukan dari mana untuk mencari unsur
  4. kaedah indexOf- kembalikan kedudukan elemen pertama yang ditemui
  5. kaedah lastIndexOf- kembalikan kedudukan elemen terakhir yang ditemui
Jika elemen yang anda cari tidak dijumpai, kaedah akan mengembalikan baris -1. Mari cuba cari nombor siri huruf A, K, Z, Яdalam abjad Inggeris, tetapi perlu diingat bahawa pengindeksan aksara dalam rentetan dalam Java bermula dari sifar:
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
}

Mengeluarkan subrentetan daripada rentetan

Untuk mengekstrak subrentetan daripada rentetan, kelas String dalam Java menyediakan kaedah:
  • substring(int beginIndex)
  • substring(int beginIndex, int endIndex)
Mari lihat bagaimana kita boleh menggunakan kedudukan elemen dan kaedah pengekstrakan subrentetan untuk mendapatkan nama fail daripada laluannya:
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
}

Tukar rentetan kepada huruf besar/kecil:

Kelas String menyediakan kaedah untuk menukar rentetan kepada huruf besar dan kecil:
  • toLowerCase()
  • toUpperCase()
Mari lihat bagaimana kaedah ini berfungsi menggunakan contoh:
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
}
Bekerja dengan kelas Java ini dipelajari pada peringkat awal kursus dalam talian JavaRush:

Sumber tambahan

Maklumat tentang kelas String juga disediakan dalam artikel lain dalam komuniti JavaRush:
  1. Strings dalam Java - Artikel ini merangkumi beberapa asas tentang bekerja dengan rentetan dalam Java.
  2. Rentetan Java. Soalan dan jawapan temu bual, bahagian 1 - artikel ini membincangkan soalan temu bual mengenai topik String, dan juga menyediakan jawapan kepada soalan dengan penjelasan dan contoh kod.
  3. Strings dalam Java (class java.lang.String) - artikel ini menyediakan analisis yang lebih mendalam tentang kelas String, dan juga membincangkan selok-belok bekerja dengan kelas ini.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION