首頁 >後端開發 >C++ >從字串中刪除特殊字元最有效的方法是什麼?

從字串中刪除特殊字元最有效的方法是什麼?

DDD
DDD原創
2024-12-29 15:27:11447瀏覽

What's the Most Efficient Way to Remove Special Characters from a String?

從字串中刪除特殊字元的最有效方法

在軟體開發中,有效處理字串中的特殊字元至關重要。要有效刪除除字母數字、下劃線和點符號之外的所有特殊字符,有多種方法。

一種常見的方法是逐個字元地迭代字串,根據允許的集合檢查每個字元。此方法實現起來相對簡單,但對於大字串可能不是最有效的。

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn