首先我們來看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大于字符串長度
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大于字符串長度

