1. Struktur Stringkelas

Hari ini kita akan bercakap tentang Stringkelas. Selepas ints, kelas String ialah kelas paling popular di Jawa. Ia digunakan sepenuhnya di mana-mana. Ia mempunyai banyak kaedah berguna yang lebih baik anda ketahui.

Kelas Stringadalah satu-satunya kelas selain daripada jenis primitif yang literalnya boleh digunakan dalam switchpernyataan; pengkompil mengendalikan penambahan rentetan dan objek Rentetan dengan cara yang istimewa; Stringobjek diceritakan dalam ingatan dengan cara yang istimewa. Pada asasnya, Stringkelas itu adalah kelas yang sangat istimewa.

Selain itu, Stringkelas itu mempunyai sekumpulan kelas pembantu yang tujuannya adalah untuk memudahkan lagi bekerja dengan rentetan di Jawa. Apabila anda mempelajari semua ini, banyak perkara akan menjadi lebih mudah untuk anda lakukan. Baiklah, kita akan bermula dari teras ekosistem ini — organisasi kelas String.

Susunan watak

Struktur kelas Stringsebenarnya sangat mudah: di dalamnya terdapat tatasusunan aksara (tatasusunan char) yang menyimpan semua aksara rentetan. Sebagai contoh, beginilah cara perkataan 'Hello' disimpan:

Struktur kelas String
Penting!

Sebenarnya, ini tidak begitu tepat. Oleh kerana Stringkelas adalah sangat penting, ia menggunakan banyak pengoptimuman, dan data disimpan secara dalaman bukan sebagai tatasusunan aksara, tetapi hanya sebagai tatasusunan bait.


2. Kaedah Stringkelas

Kelas Stringmempunyai banyak kaedah: ia mempunyai 18 pembina sahaja! Jadi di bawah ini kami hanya menyebut yang paling asas daripada mereka:

Kaedah Penerangan
int length()
Mengembalikan bilangan aksara dalam rentetan
boolean isEmpty()
Menyemak sama ada rentetan itu ialah rentetan kosong
boolean isBlank()
Semak bahawa rentetan hanya mengandungi aksara ruang putih: ruang, tab, baris baharu, dsb.
char charAt(int index)
Mengembalikan aksara pada kedudukan indeks dalam rentetan.
char[] toCharArray()
Mengembalikan tatasusunan aksara (salinan) yang membentuk rentetan
byte[] getBytes()
Menukar rentetan kepada set bait dan mengembalikan tatasusunan bait.
String[] split(String regex)
Membahagikan rentetan kepada berbilang subrentetan.
String join(CharSequence delimiter, elements)
Mencantumkan berbilang subrentetan bersama-sama
String intern()
Meletakkan rentetan ke dalam string pool.

Anda boleh mengetahui lebih lanjut tentang pembina dalam artikel Pembina Java .

Mari tulis program yang menukar laluan fail daripada gaya Unix kepada gaya Windows. Unix menggunakan /aksara untuk memisahkan folder, manakala Windows menggunakan \aksara.

Penyelesaian 1: menggunakan tatasusunan char

Kod Nota
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);
Cipta objek Pengimbas
Baca baris daripada konsol

Tukar rentetan kepada tatasusunan aksara
Gelung ke atas aksara
Jika aksara itu /,
gantikannya dengan \. Jangan lupa tentang melarikan diri.

Buat rentetan baharu berdasarkan tatasusunan aksara.
Paparkan rentetan.

Penyelesaian 2: — menggunakan kaedah split()danjoin()

Kod Nota
Scanner console = new Scanner(System.in);
String path = console.nextLine();

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


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


System.out.println(result);
Cipta objek Pengimbas
Baca baris daripada konsol

Tukar rentetan kepada tatasusunan rentetan . Watak /digunakan sebagai pemisah (dua garis miring tambahan adalah hasil daripada melarikan diri berganda).
Gabungkan semua rentetan dalam tatasusunan rentetan . Ia \digunakan sebagai pemisah (kita lihat ia terlepas).

Paparkan rentetan.

Penyelesaian 3: — menggunakan replace(char oldChar, char newChar)kaedah

Kod Nota
Scanner console = new Scanner(System.in);
String path = console.nextLine();

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

System.out.println(result);
Cipta objek Pengimbas
Baca baris dari konsol

Hanya gantikan satu aksara dengan yang lain
(yang kedua dilepaskan)
Paparkan rentetan.