Objek string tidak dapat diubah. Setiap kali Anda menggunakan salah satu metode di kelas System.string, Anda perlu membuat objek string baru dalam memori, yang membutuhkan mengalokasikan ruang baru untuk objek baru. Overhead sistem yang terkait dengan membuat objek string baru bisa sangat mahal dalam situasi di mana modifikasi berulang harus dilakukan pada string. Jika Anda ingin memodifikasi string tanpa membuat objek baru, Anda dapat menggunakan kelas System.Text.StringBuilder. Misalnya, menggunakan kelas StringBuilder dapat meningkatkan kinerja saat menggabungkan banyak string bersama -sama dalam satu loop.
Dengan menginisialisasi variabel dengan metode konstruktor yang kelebihan beban, instance baru dari kelas StringBuilder dapat dibuat, seperti yang dijelaskan dalam contoh berikut.
StringBuilder myStringBuilder = new StringBuilder ("Hello World!");(I) Tetapkan kapasitas dan panjang
Meskipun objek StringBuilder adalah objek dinamis yang memungkinkan jumlah karakter dalam string yang diterapkannya, Anda dapat menentukan nilai untuk jumlah karakter maksimum yang dapat dipegangnya. Nilai ini disebut kapasitas objek dan tidak boleh disamakan dengan panjang string yang dipegang oleh objek StringBuilder saat ini. Misalnya, Anda dapat membuat instance baru dari kelas StringBuilder dengan string "Hello" (panjang 5), sambil menentukan bahwa kapasitas maksimum objek adalah 25. Ketika stringbuilder dimodifikasi, itu tidak merealokasi ruang untuk dirinya sendiri sampai kapasitas tercapai. Ketika kapasitas tercapai, ruang baru akan dialokasikan secara otomatis dan kapasitasnya akan dua kali lipat. Anda dapat menggunakan salah satu konstruktor yang kelebihan beban untuk menentukan kapasitas kelas StringBuilder. Contoh kode berikut menentukan bahwa objek MyStringBuilder dapat diperluas ke maksimum 25 kosong.
StringBuildermyStringBuilder = New StringBuilder ("Hello World!", 25); Selain itu, panjang maksimum objek dapat diatur menggunakan properti Baca/Tulis. Contoh kode berikut menggunakan properti kapasitas untuk menentukan panjang maksimum suatu objek.
MyStringBuilder.capacity = 25;
(Ii) Berikut ini mencantumkan beberapa metode umum dari jenis ini:
(1) Metode Append dapat digunakan untuk menambahkan representasi string dari teks atau objek ke ujung string yang diwakili oleh objek StringBuilder saat ini. Contoh berikut menginisialisasi objek StringBuilder ke "Hello World" dan kemudian menambahkan beberapa teks ke akhir objek. Ruang akan dialokasikan secara otomatis sesuai kebutuhan.
StringBuildermyStringBuilder = New StringBuilder ("Hello World!"); MyStringBuilder.append ("Hari yang indah."); Console.WriteLine (myStringBuilder);Contoh ini menampilkan Hello World! Hari yang indah. ke konsol.
(2) Metode AppendFormat menambahkan teks ke ujung StringBuilder dan mengimplementasikan antarmuka yang dapat diubah, sehingga dapat menerima string format standar yang dijelaskan dalam bagian pemformatan. Anda dapat menggunakan metode ini untuk menyesuaikan format variabel dan menambahkan nilai -nilai ini ke bagian belakang StringBuilder. Contoh berikut menggunakan metode appendFormat untuk menempatkan nilai integer yang ditetapkan ke format nilai mata uang ke akhir stringBuilder.
int myint = 25; StringBuilder myStringBuilder = new StringBuilder ("Total Anda adalah"); myStringBuilder.appendFormat ("{0: c}", myint); console.writeLine (mystringBuilder);Contoh ini menampilkan total Anda adalah $ 25,00 ke konsol.
(3) Metode insert menambahkan string atau objek ke posisi yang ditentukan dalam stringBuilder saat ini. Contoh berikut menggunakan metode ini untuk memasukkan kata ke posisi keenam dari stringbuilder.
StringBuildermyStringBuilder = New StringBuilder ("Hello World!"); MyStringBuilder.insert (6, "cantik"); console.writeLine (myStringBuilder);Contoh ini menampilkan Hello Beautifulworld! ke konsol.
(4) Anda dapat menggunakan metode Hapus untuk menghapus jumlah karakter yang ditentukan dari StringBuilder saat ini, dan proses penghapusan dimulai dari indeks yang ditentukan mulai dari nol. Contoh berikut menggunakan metode hapus untuk memperpendek stringbuilder.
StringBuildermyStringBuilder = New StringBuilder ("Hello World!"); MyStringBuilder.remove (5,7); Console.WriteLine (myStringBuilder);Contoh ini menampilkan halo ke konsol.
(5) Menggunakan metode ganti, Anda dapat mengganti karakter dalam objek StringBuilder dengan karakter lain yang ditentukan. Contoh berikut menggunakan metode ganti untuk mencari objek StringBuilder, temukan semua karakter tanda seru (!), Dan menggantinya dengan karakter tanda tanya (?).
StringBuildermyStringBuilder = New StringBuilder ("Hello World!"); MyStringBuilder.replace ('!', '?'); Console.writeLine (mystringBuilder);Contoh ini menampilkan Hello World? ke konsol
getSqlMapClientTemplate (). queryForList ((new stringBuilder ()). append (entityclass.getname ()). append (". select"). tostring (), null);Kelas StringBuilder Java
Jika program ini sering membutuhkan string tambahan, tidak disarankan untuk menggunakan + untuk gabungan string. Anda dapat mempertimbangkan menggunakan kelas java.lang.stringbuilder. Objek yang dihasilkan dengan menggunakan kelas ini akan memiliki panjang 16 karakter secara default. Anda juga dapat menentukan panjang awal sendiri. Jika karakter yang terlampir melebihi panjang yang dapat ditampung, objek StringBuilder secara otomatis meningkatkan panjang untuk mengakomodasi karakter yang terlampir. Jika ada kebutuhan untuk sering memasang string, menggunakan kelas StringBuilder dapat sangat meningkatkan efisiensi. Kode berikut:
Kode Java
kelas publik appendStringTest {public static void main (string [] args) {string text = ""; long beginTime = system.currentTimemillis (); untuk (int i = 0; i <10000; i ++) Teks = Teks+i; Long Endtime = System.CurrentTimeMillis (); System.out.println ("Waktu Eksekusi:" +(endtime-beginTime)); StringBuilder SB = StringBuilder baru (""); begintime = system.currentTimemillis (); untuk (int i = 0; i <10000; i ++) sb.append (string.valueof (i)); endtime = system.currentTimemillis (); System.out.println ("Waktu Eksekusi:" +(endtime-beginTime)); }} kelas publik appendStringTest {public static void main (string [] args) {string text = ""; long beginTime = system.currentTimemillis (); untuk (int i = 0; i <10000; i ++) Teks = Teks+i; Long Endtime = System.CurrentTimeMillis (); System.out.println ("Waktu Eksekusi:"+(endtime-beginTime)); StringBuilder SB = StringBuilder baru (""); begintime = system.currentTimemillis (); untuk (int i = 0; i <10000; i ++) sb.append (string.valueof (i)); endtime = system.currentTimemillis (); System.out.println ("Waktu Eksekusi:"+(endtime-beginTime)); }}Output kode ini:
Waktu Eksekusi: 3188
Waktu Eksekusi: 15
StringBuilder adalah kelas baru yang ditambahkan hanya ke J2Se1.5.0. Jika versi sebelumnya memiliki persyaratan yang sama, java.util.stringbuffer akan digunakan. Faktanya, StringBuilder dirancang untuk memiliki antarmuka operasi yang sama dengan StringBuffer. Menggunakan StringBuilder dalam situasi non-thread yang berdiri sendiri akan memiliki efisiensi yang lebih baik karena StringBuilder tidak menangani masalah sinkronisasi. StringBuffer akan menangani masalah sinkronisasi. Jika StringBuilder akan dioperasikan di bawah beberapa utas, Anda harus menggunakan StringBuffer sebagai gantinya untuk membiarkan objek mengelola masalah sinkronisasi dengan sendirinya.
Analisis singkat di atas tentang penggunaan StringBuilder di Java adalah semua konten yang saya bagikan dengan Anda. Saya harap ini dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.