1. Memodifikasi string

Di Jawa, string adalah objek yang tidak dapat diubah. Ini dilakukan untuk membuat kelas String sangat dioptimalkan dan memungkinkannya digunakan di mana saja. Misalnya, hanya jenis yang tidak dapat diubah yang direkomendasikan untuk digunakan sebagai kunci dalam koleksi HashMap .

Namun, situasi sering muncul ketika pemrogram merasa lebih nyaman jika kelas Stringdapat diubah. Mereka menginginkan kelas yang tidak membuat substring baru setiap kali salah satu metodenya dipanggil.

Nah, misalkan kita memiliki string yang sangat besar dan kita perlu sering menambahkan sesuatu di akhir string. Dalam hal ini, bahkan kumpulan karakter ( ArrayList<Character>) bisa lebih efisien daripada terus-menerus membuat ulang dan menggabungkan objek String.

Itulah mengapa tipe seperti String yang dapat diubah ditambahkan ke bahasa Java. Itu disebut StringBuilder.

Membuat objek

Untuk membuat StringBuilderobjek berdasarkan string yang ada, Anda perlu menjalankan pernyataan seperti:

StringBuilder name = new StringBuilder(string);

Untuk membuat string kosong yang dapat diubah, Anda perlu menggunakan pernyataan seperti ini:

StringBuilder name = new StringBuilder();

Daftar metode

Kelas StringBuildermemiliki dua lusin metode yang bermanfaat. Inilah yang paling penting:

metode Keterangan
StringBuilder append(obj)
Mengonversi objek yang diteruskan ke string dan menambahkannya ke string saat ini
StringBuilder insert(int index, obj)
Mengonversi objek yang diteruskan ke string dan memasukkannya ke dalam string saat ini
StringBuilder replace(int start, int end, String str)
Mengganti bagian string yang ditentukan oleh interval start..end dengan string yang diteruskan
StringBuilder deleteCharAt(int index)
Menghapus karakter dengan indeks tertentu dari string
StringBuilder delete(int start, int end)
Menghapus karakter dalam interval yang ditentukan dari string
int indexOf(String str, int index)
Mencari substring dalam string saat ini
int lastIndexOf(String str, int index)
Mencari substring dalam string saat ini, mulai dari akhir
char charAt(int index)
Mengembalikan karakter dalam string pada indeks yang diteruskan
String substring(int start, int end)
Mengembalikan substring yang ditentukan oleh interval yang ditentukan
StringBuilder reverse()
Membalikkan string saat ini.
void setCharAt(int index, char)
Mengubah karakter pada indeks yang ditentukan menjadi karakter yang diteruskan
int length()
Mengembalikan panjang string dalam karakter

Berikut adalah penjelasan singkat dari masing-masing metode


2. Deskripsi metode:

Menambahkan ke string

Untuk menambahkan sesuatu ke string yang bisa berubah ( StringBuilder), gunakan append()metode ini. Contoh:

Kode Keterangan
StringBuilder builder = new StringBuilder("Hi");
builder.append("Bye");
builder.append(123);
Hi
HiBye
HiBye123

Konversi ke string standar

Untuk mengonversi StringBuilderobjek menjadi objek String, Anda hanya perlu memanggil metodenya toString(). Contoh

Kode Keluaran
StringBuilder builder = new StringBuilder("Hi");
builder.append(123);
String result = builder.toString();
System.out.println(result);
Hi123

Bagaimana cara menghapus karakter?

Untuk menghapus karakter dalam string yang bisa berubah, Anda perlu menggunakan deleteCharAt()metode ini. Contoh:

Kode Keluaran
StringBuilder builder = new StringBuilder("Hello");
builder.deleteCharAt(2);
String result = builder.toString();
System.out.println(result);
Helo

Bagaimana cara mengganti bagian string dengan string lain?

Untuk ini ada replace(int begin, int end, String str)caranya. Contoh:

Kode Keluaran
StringBuilder builder = new StringBuilder("Mellow");
builder.replace(2, 5, "Hello!");
String result = builder.toString();
System.out.println(result);
MeHello!w


3. Contoh berguna untuk bekerja dengan string

Bagaimana cara membalikkan string?

Ada metode khusus untuk melakukan ini — reverse(); Contoh:

Kode Keluaran
String str = "Hello";
StringBuilder builder = new StringBuilder(str);
builder.reverse();
String result = builder.toString();
System.out.println(result);
olleH

StringBufferkelas

Ada kelas lain — StringBuffer, yang merupakan analog dari StringBuilderkelas tersebut, tetapi metodenya ditandai dengan synchronizedpengubah. Ini berarti bahwa StringBufferobjek dapat diakses secara bersamaan dari beberapa utas.

Tapi jauh lebih lambat dari StringBuilder. Anda mungkin memerlukan kelas ini saat mulai aktif menjelajahi multithreading dalam pencarian Java Multithreading .