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:
- Kelas melaksanakan
Serializable
dan antara mukaCharSequence
. Memandangkan ia termasuk dalam pakejjava.lang
, ia tidak perlu diimport. - Kelas String di Java ialah kelas akhir dan tidak boleh mempunyai anak.
- 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.
- Oleh kerana kebolehubahannya, objek kelas String selamat untuk benang dan boleh digunakan dalam persekitaran berbilang benang.
- Setiap objek dalam Java boleh ditukar kepada rentetan melalui kaedah
toString
yang diwarisi oleh semua kelas Java daripada kelas tersebutObject
.
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 toString
pada 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 kaedahequals()
:
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 kaedahString.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)
delimiter
pemisah elemen, dan elements
merupakan 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 kaedahsplit(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:indexOf(int ch)
indexOf(int ch, int fromIndex)
indexOf(String str)
indexOf(String str, int fromIndex)
lastIndexOf(int ch)
lastIndexOf(int ch, int fromIndex)
lastIndexOf(String str)
lastIndexOf(String str, int fromIndex)
ch
— simbol yang anda cari (char
)str
- rentetan carianfromIndex
— kedudukan dari mana untuk mencari unsur- kaedah
indexOf
- kembalikan kedudukan elemen pertama yang ditemui - kaedah
lastIndexOf
- kembalikan kedudukan elemen terakhir yang ditemui
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)
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()
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:
- Pengenalan kepada String diberikan pada tahap 1, kuliah 4 pencarian Java Syntax
- Struktur dalaman String, kaedah substring dikaji pada tahap ke-2, kuliah ke-3 pencarian Java Multithreading
- Mencari, mendapatkan, memadam subrentetan dalam String dipelajari pada tahap ke-2, kuliah ke-4 pencarian Java Multithreading
- Kaedah String.format diliputi pada tahap 2, kuliah 6 pencarian Java Multithreading
Sumber tambahan
Maklumat tentang kelas String juga disediakan dalam artikel lain dalam komuniti JavaRush:- Strings dalam Java - Artikel ini merangkumi beberapa asas tentang bekerja dengan rentetan dalam Java.
- 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. - 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.
GO TO FULL VERSION