Rumah > pembangunan bahagian belakang > C++ > Apakah cara terpantas untuk mengira kejadian rentetan dalam .net?

Apakah cara terpantas untuk mengira kejadian rentetan dalam .net?

Patricia Arquette
Lepaskan: 2025-01-31 06:41:07
asal
383 orang telah melayarinya

What's the Fastest Way to Count String Occurrences in .NET?

Cara terbaik untuk mengira kiraan rentetan

Cari semua kali dalam watak tertentu atau sub -string dalam rentetan yang diberikan dalam .net. Artikel ini memberi tumpuan kepada kaedah yang paling berkesan dan mudah, terutamanya apabila slash (/) dalam rentetan statistik.

Pertama sekali, anda boleh mempertimbangkan menggunakan penggantian watak, contohnya:

atau, untuk sub -string dengan panjang lebih daripada satu watak, anda boleh menggunakan:
string source = "/once/upon/a/time/";
int count = source.Length - source.Replace("/", "").Length;
Salin selepas log masuk

string haystack = "/once/upon/a/time/";
string needle = "/";
int needleCount = (haystack.Length - haystack.Replace(needle, "").Length) / needle.Length;
Salin selepas log masuk

atau, anda boleh memilih:

int count = source.Count(f => f == '/');
Salin selepas log masuk

Mengejutkan, kaedah penyingkiran watak awal adalah kira -kira 30%lebih cepat daripada kaedah LINQ atau Split. Ujian penanda aras rentetan "/sekali/on/a/time/" menghasilkan hasil kronograf berikut:

int count = source.Split('/').Length - 1;
Salin selepas log masuk

Kaedah Penggantian Karakter: 12 saat

    source.count: 19 saat
  • source.split: 17 saat
  • loop foreach (dari jawapan lain): 10 saat
  • Walaupun perbezaan masa ini mungkin tidak jelas dalam aplikasi praktikal, kaedah penggantian watak asal masih terpantas untuk keadaan ini.

Atas ialah kandungan terperinci Apakah cara terpantas untuk mengira kejadian rentetan dalam .net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan