var alimama_pid="mm_10096109_566393_892186"; var alimama_titlecolor="0000FF"; var alimama_descolor ="000000"; var alimama_bgcolor="FFFFFF"; var alimama_bordercolor="E6E6E6"; var alimama_linkcolor="008000"; var alimama_bottomcolor="FFFFFF"; var alimama_anglesize="0"; var alimama_bgpic="0"; var alimama_icon="0"; var alimama_sizecode="11"; var alimama_width=760; var alimama_height=90; var alimama_type=2;
首先我們來看2個需要用到SubString()的地方:
1、 在C#中,我們時常需要縮減字符,並且用"..."取代被縮減的部分,通常我們使用的是(string).SubString(),然後我們可以這樣縮減:
這樣的寫好處是比較容易想到,且簡要易懂,便於編寫。
這樣寫的不足是格式比較生硬,不便於復用,編寫效率低。
2、 我在開發一些項目的時候,還經常有這樣的需求:一個N長度的字符串,要取末尾的幾個字符,或者中間指定起始和結尾的一段字符,其余的用"..."表示,這時候往往需要比較復雜的判斷,最後用一個(string).SubString()。
下面我提供一種可以同時解決靈活性和繁瑣判斷的解決方案,希望可以拋磚引玉:
你可以把這段程序放在一個單獨的類庫中,比如Common.StringHandle。由於采用了靜態方式,你只需要這樣直接調用:
關於處理機制和參數說明,在編寫的時候我已經說明的比較詳細了,下面我居舉一些簡單的例子:
要求:字符串“0123456789”中,取前5個字符,其余用“..”替代
代碼:Common.StringHandle.SubString("0123456789",0,5)
輸出結果:01234..
要求:字符串“0123456789”中,取“5”開始的3字符(不足3個則全取),如果之後還有其余用“..”替代
代碼:Common.StringHandle.SubString("0123456789",5,3)
輸出結果:..567..
要求:字符串“0123456789”中,取“5”開始的10字符(不足10個則全取),如果之後還有其余用“..”替代
代碼:Common.StringHandle.SubString("0123456789",5,10)
輸出結果:..56789
我在這也只是給出一種思路,這段代碼還有很多的擴展余地:比如約定".."的形式、實現從右截取N個字符,或者在.Net3.5中使用擴展方法(Extension Method)來完成等等(有些我已經實現,但由於加進來可能沖淡主題了,在此省略,不過我們可以例外探討)。
希望可以拋磚引玉,跟大家一起探討!
原文地址:http://www.cnblogs.com/szw/archive/2007/12/17/1003321.Html