1. 程式人生 > >在C#中取得指定長度的字串

在C#中取得指定長度的字串

我們知道,在C#(.Net)內部所使用Unicode來儲存字串,這樣在處理字串的時候偶爾會發生一些不爽的事情。比如,如果字串中有中文字元,而我們想取得固定長度字串就頗為麻煩,下面提供了一個解決方案。在這個方案中,我們實現了這麼幾個功能:

取得給出字串靠左邊的子串,子串的大小為為指定長度;
如果給出的字串長度大於給出的長度,則在子串的末端加上“..”。
避免出現半個漢字的情況。
原始碼如下:

private string getLeftSubString(string content, int length)
{
Encoding encoding = Encoding.GetEncoding("gb2312");
StringBuilder sb = new StringBuilder();
int totalLength = 0;
foreach (char contentChar in content)
{
int size = encoding.GetByteCount(new char[] { contentChar });
if (totalLength + size > length -2)
{
sb.Append("..");
break;
}
sb.Append(contentChar);
totalLength += size;
}
return sb.ToString();
}
只是這個方法的效率可能不高,歡迎大家給出更好的解決方案。