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

字號:

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

     9 /// 原字符串
    10 /// 起始字符串位置
    11 /// 最長字符個數(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大于字符串長度