Maison >développement back-end >C++ >Quelle est la manière la plus efficace de supprimer les caractères spéciaux d'une chaîne ?
Approche la plus efficace pour supprimer les caractères spéciaux d'une chaîne
Dans le développement de logiciels, il est essentiel de gérer efficacement les caractères spéciaux dans les chaînes. Pour supprimer efficacement tous les caractères spéciaux, à l'exception des symboles alphanumériques, des traits de soulignement et des points, il existe plusieurs approches.
Une approche courante consiste à parcourir la chaîne caractère par caractère, en vérifiant chaque caractère par rapport à l'ensemble autorisé. Cette méthode est relativement simple à mettre en œuvre mais n'est peut-être pas la plus efficace pour les grandes chaînes.
<br>public static string 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();
}
Pour une meilleure efficacité, il est recommandé d'utiliser une approche plus directe avec un table de recherche pré-initialisée. Cela élimine le besoin de vérifications conditionnelles et réduit considérablement le nombre d'accès au tableau.
<br>private static bool[] _lookup;</p><p>static Program() {</p> <pre class="brush:php;toolbar:false">_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;
}
chaîne statique publique 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);
}
Bien que les expressions régulières puissent également être utilisées, leurs performances peuvent être plus lentes que les approches ci-dessus, en particulier pour les petites chaînes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!