String adalah kelas invarian. Menggunakan string untuk memodifikasi string akan membuat objek string baru. Jika sering dimodifikasi, banyak objek string akan dihasilkan, yang sangat mahal. Oleh karena itu, Java menyediakan kelas StringBuffer, yang jauh lebih efisien daripada string dalam memodifikasi string.
Ada 3 kelas di Java yang bertanggung jawab untuk operasi karakter.
UsingstringBuffer kelas publik { / *** Temukan string yang cocok* / public static void testFindStr () {StringBuffer SB = new StringBuffer (); SB.Append ("Ini adalah StringBuffer"); // Mengembalikan posisi di mana substring muncul pertama di string. Jika tidak ada, kembalikan sistem bilangan negatif.out.println ("sb.indexof (/" is/") =" + sb.indexof ("is")); // Atur parameter untuk metode indexOf dan tentukan sistem starting starting System.out.println ("sb.indexof (/" is/") =" + sb.indexof ("is", 3)); // Mengembalikan posisi terakhir dari substring di string. Jika tidak ada, kembalikan sistem bilangan negatif.out.println ("sb.LastIndexOf (/" is/") =" + sb.LastIndexOf ("is")); // Atur parameter untuk metode LastIndexof dan tentukan sistem posisi akhir yang cocok.out.println ("SB.LastIndexOf (/" is/", 1) =" + sb.LastIndexOf ("is", 1)); } / *** mencegat string* / public static void testSubStr () {stringBuffer sb = stringBuffer baru (); SB.Append ("Ini adalah StringBuffer"); // Posisi terminasi default adalah akhir dari string system.out.print ("sb.substring (4) =" + sb.substring (4)); // Metode Substring mencegat string, yang dapat menentukan posisi awal dan posisi terminasi dari intersep System.out.print ("SB.SubString (4,9) =" + SB.Substring (4, 9)); } / ** * Dapatkan karakter pada posisi tertentu dalam string * / public static void testChoatStr () {StringBuffer SB = New StringBuffer ("Ini adalah StringBuffer"); System.out.println (sb.charat (sb.length () - 1)); } / *** Tambahkan berbagai jenis data ke ekor string* / public static void testAppend () {StringBuffer SB = New StringBuffer ("Ini adalah StringBuffer!"); SB.Append (1.23F); System.out.println (SB.ToString ()); } / *** Hapus data dalam string* / public static void testDelete () {StringBuffer SB = StringBuffer baru ("Ini adalah StringBuffer!"); SB.Delete (0, 5); SB.DeleteCharat (SB.Length () - 1); System.out.println (SB.ToString ()); } / *** Masukkan berbagai jenis data ke dalam string* / public static void testInsert () {StringBuffer SB = New StringBuffer ("Ini adalah StringBuffer!"); // dapat memasukkan karakter, array karakter, string, dan berbagai angka dan nilai boolean pada posisi tertentu sb.insert (2, 'w'); sb.insert (3, char baru [] {'a', 'b', 'c'}); SB.insert (8, "ABC"); SB.Insert (2, 3); SB.insert (3, 2.3F); SB.Insert (6, 3.75d); SB.Insert (5, 9843L); SB.insert (2, true); System.out.println ("TestInsert:" + SB.ToString ()); } / *** Ganti beberapa karakter dalam string* / public static void testReplace () {StringBuffer SB = StringBuffer baru ("Ini adalah StringBuffer!"); // Ganti karakter tertentu dalam string dengan string lain SB.replace (10, sb.length (), "integer"); System.out.println ("TestReplace:" + SB.ToString ()); } / *** Reverse String* / public static void reverSeStr () {StringBuffer SB = New StringBuffer ("Ini adalah StringBuffer!"); System.out.println (SB.Reverse ()); // Metode terbalik membalikkan string}} ringkasan:
StringBuffer bukan kelas invarian. Saat memodifikasi konten string, tidak ada objek baru yang dibuat. Oleh karena itu, lebih cocok untuk memodifikasi string daripada kelas string;
Kelas StringBuffer tidak memberikan metode ToCharArray yang sama seperti String;
Metode ganti kelas StringBuffer berbeda dari metode ganti kelas string. Metode ganti memiliki tiga parameter. Parameter pertama menentukan posisi mulai dari substring yang diganti, parameter kedua menentukan posisi akhir dari substring yang diganti, dan parameter ketiga menentukan substring baru.
Di atas adalah semua tentang artikel ini, saya harap ini akan membantu untuk pembelajaran semua orang.