SubString()功能擴(kuò)展實(shí)例

字號(hào):

首先我們來(lái)看2個(gè)需要用到SubString()的地方:
    1、 在C#中,我們時(shí)常需要縮減字符,并且用"..."取代被縮減的部分,通常我們使用的是(string).SubString(),然后我們可以這樣縮減:
    str = (str.Length>10)? str.SubString(0,10)+"..." : str ;
     這樣的寫(xiě)好處是比較容易想到,且簡(jiǎn)要易懂,便于編寫(xiě)。
     這樣寫(xiě)的不足是格式比較生硬,不便于復(fù)用,編寫(xiě)效率低。
    2、 我在開(kāi)發(fā)一些項(xiàng)目的時(shí)候,還經(jīng)常有這樣的需求:一個(gè)N長(zhǎng)度的字符串,要取末尾的幾個(gè)字符,或者中間指定起始和結(jié)尾的一段字符,其余的用"..."表示,這時(shí)候往往需要比較復(fù)雜的判斷,最后用一個(gè)(string).SubString()。
     下面我提供一種可以同時(shí)解決靈活性和繁瑣判斷的解決方案,希望可以拋磚引玉:
     1 /**////
     2 /// 區(qū)字符串固定長(zhǎng)度,其余的省略
     3 ///
     4 /// 規(guī)則:
     5 /// 1.如果startIndex大于字符串長(zhǎng)度,則自動(dòng)調(diào)整到取最后maxLangth長(zhǎng)度。如果此時(shí)maxLangth長(zhǎng)度比字符串長(zhǎng)度還要大,那么startIndex回到0
     6 /// 2.如果在startIndex基礎(chǔ)上,取maxLangth長(zhǎng)度大于比字符串長(zhǎng)度,那么maxLangth自動(dòng)取到可能的值,即從startIndex一直取到字符串末尾
     7 /// 3.結(jié)果中,字符串只要有削減的地方,都以".."替代
     8 ///

     9 /// 原字符串
    10 /// 起始字符串位置
    11 /// 最長(zhǎng)字符個(gè)數(shù)
    12 ///
    13 public static string SubString(string str, int startIndex, int maxLangth)
    14 {
    15 string substring = "";
    16
    17 //調(diào)整startIndex
    18 if (startIndex > str.Length - 1)//如果startIndex大于字符串長(zhǎng)度