從字串中刪除特殊字元的最有效方法
在軟體開發中,有效處理字串中的特殊字元至關重要。要有效刪除除字母數字、下劃線和點符號之外的所有特殊字符,有多種方法。
一種常見的方法是逐個字元地迭代字串,根據允許的集合檢查每個字元。此方法實現起來相對簡單,但對於大字串可能不是最有效的。
<br>public static string RemoveSpecialCharacters(string str) {<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();
}
為了提高效率,建議使用更直接的方法預先初始化的查找表。這消除了條件檢查的需要,並顯著減少了數組訪問的次數。
<br>private static bool[] _lookup;<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;
}
「公有字串RemoveSpecialCharacters(字串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);
}
雖然也可以使用正規表示式,但它們的效能可能比上述方法慢,特別是對於小字串。
以上是從字串中刪除特殊字元最有效的方法是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!