我有兩個文本框,一個用於輸入,另一個用於輸出。我需要從輸入中僅過濾十六進制字符並以大寫形式輸出它。我檢查過使用正則表達式(Regex
)比使用循環要快得多。哪些正則表達式和上面的組合更快?
我當前的代碼以第一大寫然後過濾16進制數如下:
string strOut = Regex.Replace(inputTextBox.Text.ToUpper(), "[^0-9^A-F]", "");
outputTextBox.Text = strOut;
一種可替換地:
string strOut = Regex.Replace(inputTextBox.Text, "[^0-9^A-F^a-f]", "");
outputTextBox.Text = strOut.ToUpper();
該輸入可以包含多達32k的字符,因此速度是重要的在這裏。我用TimeSpan
來衡量,但結果不一致。
我的問題是:哪些代碼具有更好的高速性能,爲什麼?
使用'秒錶'。 – SLaks
你是否確信這不是過早優化的情況?你是否期望文本框被填充每秒超過1000次的32K字符? – HABO