C# string類型遇到的兩個問題


最近在維護一位離職的同事寫的WPF代碼,偶然發現他使用C# string類型的兩個問題,在這里記錄一下。

1. 使用Trim函數移除字串中的空格、換行符等字符串。

csRet.Trim(new char[] { '\r', '\n', '\t', ' ' });
if (!csRet.Equals(string.Empty))

    statement1;

else

    statement2;

上述代碼的意圖為:移除string類型變量csRet開頭和結尾處的換行符、制表符、空格符之后,判斷該字符串是否是空。

實際檢驗發現當csRet中只包含上述四種字符的時候,statement2被執行了,也就是說trim后的字符串不是空這是為什么呢?研究后發現,Trim函數確實是可以從字符串的開始、結束位置移除指定的字符串,但是,改動作並不是在原始字符串上操作的,而是會返回一個執行了移除操作之后的新字符串。所以若想要將csRet內的值改為Trim后的值,可以使用如下方法:

csRet =

csRet.Trim(new char[] { '\r', '\n', '\t', ' ' });
if (!csRet.Equals(string.Empty))

    statement1;

else

    statement2;

 

2. 使用Remove函數之后,原始字符串的值未改變

    原因與上面的Trim函數使用后原始字符串未改變相同,Remove函數也不會改變原始字符串而是會返回一個新的string類型變量。若想修改原始string類型變量的值,只需要執行一個賦值操作,將Remove函數返回的字符串重新賦值給原始字符串即可。

 


免責聲明!

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



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