首先,我在知道Split這個(gè)函數(shù)的作用,是把一個(gè)字符串按指定的分割符分割成一個(gè)字符串?dāng)?shù)組。
ASP里有這個(gè)Split,是這樣定義的dim Split(byval source as string ,byval str as string) as string()
source是源字符串,str是分隔符
我這里用了VB.net的寫法,方便說明返回值的類型和參數(shù)的類型。
大家一看就明白怎么用了。
在C#里,我們是這樣用的
string[] Split(string source,char[] char)
在這里Char是一個(gè)Char[]數(shù)組,我們?cè)谑褂脮r(shí)可以這樣設(shè)定new char[]{','} 這樣就只定義了一個(gè)分割符,還可以用new char[] {',','.','#'}來定義多個(gè)分割符。這在C#里是很簡單的一種用法。
可以在ASP里要使用多個(gè)分割符來分割字符串,應(yīng)該怎么做呢?
Asp里的Split只能給一個(gè)字符串參數(shù)來當(dāng)分割符。我查閱了一些資料,沒有找到ASP里的Split定義多個(gè)分割符的方法。
看來只有自己處理了,最后找出一種方法:先把源字符串里我們認(rèn)為要被當(dāng)做分割符的字符都轉(zhuǎn)換成一個(gè)特定的字符,比如“,”。然后我們?cè)儆眠@個(gè)特定的分割符來進(jìn)行分割,例子如下:
lcontent=Replace(lcontent,".",",")
lcontent=Replace(lcontent," ",",")
lcontent=Replace(lcontent,"。",",")
lcontent=Replace(lcontent,"、",",")
lcontent=Replace(lcontent,"\",",")
lcontent=Replace(lcontent,"/",",")
lcontent=Replace(lcontent,"#",",")
lcontent=Replace(lcontent,"*",",")
lcontent=Replace(lcontent,"&",",")
lcontent=Replace(lcontent,":",",")
lcontent=Replace(lcontent,";",",")
rec=Split(lcontent,",")
這樣就實(shí)現(xiàn)了Asp里的Split使用多個(gè)分割符的方法了。
學(xué)而無思則不進(jìn),所以接下來想到了C#里的Split的工作方法。
怎么樣能達(dá)到不錯(cuò)的效率呢?如果它先用char[0]來分割字符串,然后再用char[1]分割,再用char[2],char[3]... 這樣多次分割后再組成一個(gè)數(shù)組來得到最終的結(jié)果。似乎這樣做的效率并不高,個(gè)人覺得也不會(huì)用這種方法來處理。
所以個(gè)人覺得C#里的Split可以也是按上面ASP里的方法來實(shí)現(xiàn)的Split的char[]分割?先用把source里和Char[]的相同的字符都轉(zhuǎn)成一個(gè)特定的分割符,或許不是',' 或許是一個(gè)我們字符串里基本不可能出現(xiàn)的Char,這樣安全性更高。然后再用這個(gè)特定的分割符來進(jìn)行分割。這樣效率應(yīng)該會(huì)高不少。