Rumah >pembangunan bahagian belakang >C++ >Apakah Cara Paling Cekap untuk Mengalih Keluar Aksara Khas daripada Rentetan?
Pendekatan Paling Cekap untuk Mengalih Keluar Aksara Khas daripada Rentetan
Dalam pembangunan perisian, adalah penting untuk mengendalikan aksara khas dalam rentetan dengan berkesan. Untuk mengalih keluar semua aksara khas dengan cekap kecuali simbol abjad angka, garis bawah dan titik, terdapat beberapa pendekatan.
Satu pendekatan yang biasa adalah untuk melelaran melalui aksara rentetan mengikut aksara, menyemak setiap aksara terhadap set yang dibenarkan. Kaedah ini agak mudah untuk dilaksanakan tetapi mungkin bukan yang paling berkesan untuk rentetan besar.
<br>rentetan statik awam RemoveSpecialCharacters(string str) {</p> <pre class="brush:php;toolbar:false">StringBuilder sb = new StringBuilder(); foreach (char c in str) { if ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || c == '.' || c == '_') { sb.Append(c); } } return sb.ToString();
}
Untuk kecekapan yang lebih baik, adalah disyorkan untuk gunakan pendekatan yang lebih langsung dengan jadual carian pra-dimulakan. Ini menghapuskan keperluan untuk semakan bersyarat dan mengurangkan bilangan akses tatasusunan dengan ketara.
bool statik peribadi[] _lookup;
Program statik() {
_lookup = new bool[65536]; for (char c = '0'; c <= '9'; c++) _lookup[c] = true; for (char c = 'A'; c <= 'Z'; c++) _lookup[c] = true; for (char c = 'a'; c <= 'z'; c++) _lookup[c] = true; _lookup['.'] = true; _lookup['_'] = true;
}
rentetan statik awam RemoveSpecialCharacters(string str) {
char[] buffer = new char[str.Length]; int index = 0; foreach (char c in str) { if (_lookup[c]) { buffer[index] = c; index++; } } return new string(buffer, 0, index);
}
Walaupun ungkapan biasa juga boleh digunakan, prestasinya mungkin lebih perlahan daripada pendekatan di atas, terutamanya untuk rentetan kecil.
Atas ialah kandungan terperinci Apakah Cara Paling Cekap untuk Mengalih Keluar Aksara Khas daripada Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!