1. Struktur Stringkelas

Hari ini kita akan berbicara tentang Stringkelas. Setelah int, kelas String adalah kelas paling populer di Java. Ini benar-benar digunakan di mana-mana. Ini memiliki banyak metode berguna yang sebaiknya Anda ketahui.

Kelas Stringadalah satu-satunya kelas selain tipe primitif yang literalnya dapat digunakan dalam switchpernyataan; kompiler menangani penambahan string dan objek String dengan cara khusus; Stringobjek bertingkat dalam memori dengan cara khusus. Pada dasarnya, Stringkelas tersebut merupakan kelas yang sangat istimewa.

Selain itu, Stringkelas tersebut memiliki banyak kelas pembantu yang tujuannya adalah untuk lebih menyederhanakan bekerja dengan string di Java. Ketika Anda mempelajari semua ini, banyak hal akan menjadi lebih mudah untuk Anda lakukan. Baiklah, kita akan mulai dari inti ekosistem ini — pengorganisasian kelas String.

Susunan karakter

Struktur kelas Stringsebenarnya sangat sederhana: di dalamnya terdapat array karakter (char array) yang menyimpan semua karakter string. Misalnya, beginilah cara kata 'Halo' disimpan:

Struktur kelas String
Penting!

Sebenarnya, ini tidak cukup akurat. Karena Stringkelas ini sangat penting, ia menggunakan banyak pengoptimalan, dan data disimpan secara internal bukan sebagai larik karakter, tetapi hanya sebagai larik byte.


2. Metode Stringkelas

Kelas Stringmemiliki banyak metode: hanya memiliki 18 konstruktor! Jadi di bawah ini kami hanya menyebutkan yang paling dasar:

Metode Keterangan
int length()
Mengembalikan jumlah karakter dalam string
boolean isEmpty()
Memeriksa apakah string adalah string kosong
boolean isBlank()
Periksa apakah string hanya berisi karakter spasi: spasi, tab, baris baru, dll.
char charAt(int index)
Mengembalikan karakter pada posisi indeks dalam string.
char[] toCharArray()
Mengembalikan array karakter (salinan) yang membentuk string
byte[] getBytes()
Mengonversi string menjadi satu set byte dan mengembalikan array byte.
String[] split(String regex)
Membagi string menjadi beberapa substring.
String join(CharSequence delimiter, elements)
Menggabungkan beberapa substring menjadi satu
String intern()
Menempatkan string ke dalam string pool.

Anda dapat mempelajari lebih lanjut tentang konstruktor di artikel Java Constructors .

Mari kita menulis sebuah program yang mengubah jalur file dari gaya Unix ke gaya Windows. Unix menggunakan /karakter untuk memisahkan folder, sedangkan Windows menggunakan \karakter tersebut.

Solusi 1: menggunakan array karakter

Kode Catatan
Scanner console = new Scanner(System.in);
String path = console.nextLine();

char[] chars = path.toCharArray();
for (int i = 0; i < chars.length; i++)
   if (chars[i] == '/')
      chars[i] = '\\';

String result = new String(chars);
System.out.println(result);
Membuat objek Pemindai
Membaca baris dari konsol

Mengkonversi string ke larik karakter
Mengulangi karakter
Jika karakternya /,
ganti dengan \. Jangan lupa tentang melarikan diri.

Buat string baru berdasarkan array karakter.
Menampilkan string.

Solusi 2: — menggunakan metode split()danjoin()

Kode Catatan
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String[] array = path.split("/");


String result = String.join("\\", array);


System.out.println(result);
Membuat objek Pemindai
Membaca baris dari konsol

Mengkonversi string menjadi larik string . Karakter /digunakan sebagai pemisah (dua garis miring ekstra adalah hasil dari pelolosan ganda).
Gabungkan semua string dalam array string . The \digunakan sebagai pemisah (kami melihatnya lolos).

Menampilkan string.

Solusi 3: — menggunakan replace(char oldChar, char newChar)metode

Kode Catatan
Scanner console = new Scanner(System.in);
String path = console.nextLine();

String result = path.replace('/', '\\');

System.out.println(result);
Buat objek Pemindai
Membaca baris dari konsol

Cukup ganti satu karakter dengan yang lain
(yang kedua diloloskan)
Tampilkan string.