Apakah tujuan kelas StringBuilder dalam C#?
Dalam C#, rentetan tidak boleh diubah. Ini bermakna rentetan tidak boleh diubah suai setelah dibuat. Sebarang pengubahsuaian pada rentetan mengembalikan rentetan baharu yang mengandungi pengubahsuaian, manakala rentetan asal kekal tidak berubah.
string word = "aaabbbccc"; string newWord = word.Replace('b', 'd'); Console.WriteLine(word); // prints aaabbbccc Console.WriteLine(newWord); // prints aaadddccc
Kelas StringBuilder mewakili objek seperti rentetan yang boleh diubah suai, iaitu rentetan boleh ubah. Ia dilaksanakan secara berbeza daripada jenis rentetan, yang mewakili rentetan tidak berubah.
Memandangkan mengubah suai objek rentetan menghasilkan salinan, mengubah suai objek rentetan berulang kali boleh mengakibatkan kehilangan prestasi. Untuk pengulangan kecil ia boleh diabaikan, tetapi untuk gelung besar ia boleh menjadi penting. StringBuilder menyediakan alternatif yang cekap untuk mengubah suai rentetan dengan menambahkan, memadam, menggantikan atau memasukkan aksara.
StringBuilder mengekalkan penimbal dalaman untuk memegang aksara. Jika terdapat ruang kosong dalam penimbal, data baharu akan dilampirkan. Jika tidak, ia mencipta penimbal baharu, menyalin data lama ke penimbal baharu, dan kemudian menambahkan data.
var sb = new StringBuilder(); for (int i = 0; i < 10; i++){ sb.Append("a"); } Console.WriteLine(sb.ToString()); // prints aaaaaaaaaa
Berikut ialah cara berbeza untuk membina objek StringBuilder.
// Initialize a new instance of StringBuilder var sb1 = new StringBuilder(); // Initialize a new instance of StringBuilder using the given capacity var sb2 = new StringBuilder(capacity: 10); // Initialize a new instance of StringBuilder with the given string var sb3 = new StringBuilder(value: "Hello World"); // Initialize a new instance of StringBuilder with the given capacity and the maximum capacity it can grow to var sb4 = new StringBuilder(capacity: 20, maxCapacity: 10); // Initialize a new instance of StringBuilder with the given string and capacity var sb5 = new StringBuilder(value: "Hello", capacity: 20); // Initialize a new instance of StringBuilder from the given substring and capacity var sb6 = new StringBuilder(value: "Hello World", startIndex: 0, length: 5, capacity: 20);
Kelas StringBuilder mempunyai sifat Length yang menunjukkan bilangan aksara yang dimiliki objek pada masa ini. Apabila lebih banyak aksara ditambahkan pada objek, panjangnya bertambah sehingga ia mencapai kapasitinya, yang mentakrifkan bilangan maksimum aksara yang boleh dikandung oleh objek pada masa ini.
Jika bilangan aksara yang ditambah menyebabkan panjang melebihi kapasiti semasa, kelas memperuntukkan memori baharu, menggabungkan kapasitinya. Aksara baharu kemudiannya ditambahkan pada objek dan sifat Panjangnya dilaraskan.
StringBuilder terus menambah memori tambahan secara dinamik sehingga nilai sifat MaxCapacity dicapai. Selepas itu, tiada lagi memori boleh diperuntukkan untuk objek tersebut. Jika anda cuba menambah lebih banyak data pada objek, pengecualian ArgumentOutOfRangeException atau OutOfMemoryException dilemparkan.
StringBuilder menyediakan kaedah berikut untuk mengubah suai rentetan dengan mudah.
Tambah - Menambah perwakilan rentetan objek yang ditentukan pada kejadian ini.
AppendFormat< /strong> - Menambah rentetan yang dikembalikan dengan memproses rentetan format kompaun (mengandungi sifar atau lebih item format) pada kejadian ini. Setiap item format digantikan dengan perwakilan rentetan parameter objek yang sepadan. .
AppendLine - Menambahkan penamat baris lalai pada penghujung objek StringBuilder semasa.
Clear - Mengalih keluar semua aksara daripada contoh StringBuilder semasa.
CopyTo - Menyalin aksara ke julat aksara sasaran atau tatasusunan aksara.
EnsureCapacity − Memastikan kapasiti contoh StringBuilder ini sekurang-kurangnya nilai yang ditentukan.
Sama − Mengembalikan benar jika tika ini dan tika yang disediakan mempunyai nilai rentetan, Kapasiti dan MaxCapacity yang sama.
GetChunks - Mengembalikan objek yang boleh digunakan untuk mengulangi ketulan aksara.
Insert - Sisipkan perwakilan rentetan objek yang ditentukan ke dalam contoh ini pada kedudukan aksara yang ditentukan.
padam - Mengalih keluar julat aksara yang ditentukan daripada tika ini.
Ganti - Menggantikan semua kejadian aksara atau rentetan yang ditentukan dalam kejadian ini dengan aksara atau rentetan lain yang ditentukan.
ToString - Menukar tika semasa kepada rentetan.
Contoh Demonstrasi Langsung
using System; using System.Text; class Program{ static void Main(string[] args){ string word = "aaabbbccc"; string newWord = word.Replace('b', 'd'); Console.WriteLine(word); // prints aaabbbccc Console.WriteLine(newWord); // prints aaadddccc var sb = new StringBuilder(); for (int i = 0; i < 10; i++){ sb.Append("a"); } Console.WriteLine(sb.ToString()); // prints aaaaaaaaaa // Initialize a new instance of StringBuilder var sb1 = new StringBuilder(); // Initialize a new instance of StringBuilder using the given capacity var sb2 = new StringBuilder(capacity: 10); // Initialize a new instance of StringBuilder with the given string var sb3 = new StringBuilder(value: "Hello World"); // Initialize a new instance of StringBuilder with the given capacity and the maximum capacity it can grow to var sb4 = new StringBuilder(capacity: 20, maxCapacity: 50); // Initialize a new instance of StringBuilder with the given string and capacity var sb5 = new StringBuilder(value: "Hello", capacity: 20); // Initialize a new instance of StringBuilder from the given substring and capacity var sb6 = new StringBuilder(value: "Hello World", startIndex: 0, length: 5, capacity: 20); } }
Salin selepas log masukOutput
aaabbbccc aaadddccc aaaaaaaaaa
Atas ialah kandungan terperinci Apakah tujuan kelas StringBuilder dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini meneroka cabaran penentuan penunjuk null dalam C. Ia berpendapat bahawa masalah itu tidak batal sendiri, tetapi penyalahgunaannya. Artikel ini memperincikan amalan terbaik untuk mencegah dereferensi, termasuk pemeriksaan pra-pengertian, penunjuk inisial

Artikel ini membimbing pemula untuk memilih pengkompil C. Ia berpendapat bahawa GCC, kerana kemudahan penggunaannya, ketersediaan yang luas, dan sumber yang luas, adalah yang terbaik untuk pemula. Walau bagaimanapun, ia juga membandingkan GCC, Clang, MSVC, dan TCC, yang menonjolkan perbezaan mereka

Artikel ini menerangkan cara membuat aksara baru dalam C menggunakan urutan \ n Escape dalam Printf dan meletakkan fungsi. Ia memperincikan fungsi dan menyediakan contoh kod yang menunjukkan penggunaannya untuk pecah talian dalam output.

Artikel ini menekankan kepentingan berterusan null dalam pengaturcaraan C moden. Walaupun kemajuan, null tetap penting untuk pengurusan penunjuk yang jelas, mencegah kesalahan segmentasi dengan menandakan ketiadaan alamat memori yang sah. Prac terbaik

Artikel ini mengkaji semula penyusun dalam talian untuk pemula, memberi tumpuan kepada kemudahan penggunaan dan keupayaan debug. Onlineegdb dan Repl.It diserlahkan untuk antara muka mesra pengguna dan alat debugging yang berguna. Pilihan lain seperti programz dan penyusunan

Artikel ini membandingkan platform pengaturcaraan dalam talian C, menonjolkan perbezaan ciri -ciri seperti alat debugging, fungsi IDE, pematuhan standard, dan had memori/pelaksanaan. Ia berpendapat bahawa platform "terbaik" bergantung kepada keperluan pengguna,

Artikel ini membincangkan penyalinan kod yang efisien dalam c ides. Ia menekankan bahawa penyalinan adalah fungsi IDE, bukan ciri pengkompil, dan strategi butiran untuk kecekapan yang lebih baik, termasuk menggunakan alat pemilihan IDE, lipatan kod, carian/menggantikan, templa

Artikel ini menyelesaikan masalah tingkap output yang hilang dalam kompilasi program C. Ia meneliti sebab -sebab seperti gagal menjalankan kesilapan, kesilapan program, tetapan penyusun yang salah, proses latar belakang, dan penamatan program yang cepat. Penyelesaian melibatkan ch
