Saat memodifikasi string, Anda perlu menggunakan kelas StringBuffer dan StringBuilder.
Berbeda dengan kelas String, objek kelas StringBuffer dan StringBuilder dapat dimodifikasi beberapa kali tanpa membuat objek baru yang tidak terpakai.
Kelas StringBuilder diusulkan di Java 5. Perbedaan terbesar antara kelas ini dan StringBuffer adalah StringBuilder Metode ini tidak aman untuk thread (keamanan thread berarti bahwa ketika mengakses multi-thread, mekanisme penguncian digunakan. Ketika thread mengakses data tertentu dari kelas ini, data tersebut dilindungi dan thread lain tidak dapat mengaksesnya hingga thread selesai membaca. Thread lainnya Dapat digunakan. Tidak akan ada inkonsistensi data atau polusi data. Thread tidak aman berarti perlindungan akses data tidak diberikan, dan ada kemungkinan beberapa thread mengubah data secara berturut-turut dan data yang dihasilkan adalah data kotor).
Karena StringBuilder memiliki keunggulan kecepatan dibandingkan StringBuffer, disarankan untuk menggunakan kelas StringBuilder dalam banyak kasus. Namun, ketika aplikasi memerlukan keamanan thread, kelas StringBuffer harus digunakan.
public class Test{ public static void main(String args[]){ StringBuffer sBuffer = new StringBuffer(" test"); sBuffer.append(" String Buffer"); System.out.println(sBuffer); } }
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
test String Buffer
Berikut ini adalah metode utama yang didukung oleh kelas StringBuffer:
nomor seri | Deskripsi metode |
---|---|
1 | public StringBuffer append(String s) Menambahkan string yang ditentukan ke urutan karakter ini. |
2 | public StringBuffer reverse() Mengganti urutan karakter ini dengan bentuk terbalik. |
3 | public delete(int start, int end) Menghapus karakter dari substring urutan ini. |
4 | public insert(int offset, int i) Menyisipkan representasi string dari argumen int ke dalam urutan ini. |
5 | replace(int start, int end, String str) Mengganti karakter dalam substring dari urutan ini dengan karakter dalam String yang diberikan. |
Metode dalam daftar berikut serupa dengan metode kelas String:
nomor seri | Deskripsi metode |
1 | int capacity() mengembalikan kapasitas saat ini. |
2 | char charAt(int indeks) Mengembalikan nilai char pada indeks yang ditentukan dalam urutan ini. |
3 | void sureCapacity(int minimumCapacity) Memastikan bahwa kapasitas setidaknya sama dengan minimum yang ditentukan. |
4 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) Menyalin karakter dari urutan ini ke array karakter target dst . |
5 | int indexOf(String str) Mengembalikan indeks kemunculan pertama substring yang ditentukan dalam string. |
6 | int indexOf(String str, int fromIndex) Mulai dari indeks yang ditentukan, mengembalikan indeks kemunculan pertama substring yang ditentukan dalam string. |
7 | int lastIndexOf(String str) Mengembalikan indeks dalam string ini dari kemunculan paling kanan dari substring yang ditentukan. |
8 | int lastIndexOf(String str, int fromIndex) Mengembalikan indeks dalam string ini dari kemunculan terakhir substring yang ditentukan. |
9 | int length() mengembalikan panjang karakter. |
10 | void setCharAt(int indeks, char ch) Menyetel karakter pada indeks tertentu menjadi ch . |
11 | void setLength(int newLength) Mengatur panjang urutan karakter. |
12 | CharSequence subSequence(int start, int end) Mengembalikan urutan karakter baru yang merupakan kelanjutan dari urutan ini. |
13 | String substring(int start) Mengembalikan String baru yang berisi urutan karakter yang saat ini terdapat dalam urutan karakter ini. |
14 | Substring string (int start, int end) Mengembalikan String baru yang berisi rangkaian karakter yang saat ini terdapat dalam urutan ini. |
15 | String toString() Mengembalikan representasi string data dalam urutan ini. |