C# 字符串的去空(包括制表符等)處理


  前段時間項目中吃了字符串的一個大虧,水平不到家,細微處顯真著。

我們在取某個string型的參數值時,可能經常會做一步trim()處理,可是當這個字符串本身在末尾處不止是空格,比如在數據庫中,這個字段值后面跟了有tab制表符。

  那么trim()函數對該制表符是無效的 ,視覺上可能僅僅是空格,當把它放到notepad++里的時候就能體現出來,或者在oracle數據庫里它也有制表符的體現。此時trim()后取出來的數據,在程序之后的處理可能發生意想不到的錯誤。

  oracle語句中我們可以這樣處理

select regexp_replace('12 ','[[:space:]]', '') a from dual 

oracle 正則表達式以[:apace:]來匹配所有空字符,包括(空格,回車,換行等)

  c#中同樣是以正則表達式來處理,例如

NewString = Regex.Replace(OldString, @"\s", string.Empty);

注:直接對字符串用replace函數,然后以轉義符\s去匹配,無法匹配出字符串中的tab符,原因還未找到。建議用正則。

 

常用特殊字符的ascii值以及轉義符:

\0 ASCII 0 (NUL ) 字符
\' ASCII 39 單引號 (“'” ) 字符
\" ASCII 34 雙引號 (“"” ) 字符
\b ASCII 8 退格符(backspace)  
\n ASCII 10 換行符 (nextline)
\r ASCII 13 回車符 (enter)
\t ASCII 9 制表符(TAB)

就當給自己做個筆記吧。

    參考文章:http://www.linuxidc.com/Linux/2012-05/61468.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM