有时候用户输入的分隔符种类比较多,支持逗号也想要支持空格等等,其实原来就是先统一为一中分隔符再使用split进行分割就可以了
首先,我在知道Split这个函数的作用,是把一个字符串按指定的分割符分割成一个字符串数组。
ASP里有这个Split,是这样定义的dim Split(byval source as string ,byval str as string) as string() source是源字符串,str是分隔符 我这里用了VB.net的写法,方便说明返回值的类型和参数的类型。 大家一看就明白怎么用了。
在C#里,我们是这样用的 string[] Split(string source,char[] char) 在这里Char是一个Char[]数组,我们在使用时可以这样设定new char[]{','} 这样就只定义了一个分割符,还可以用new char[] {',','.','#'}来定义多个分割符。这在C#里是很简单的一种用法。
可以在ASP里要使用多个分割符来分割字符串,应该怎么做呢? Asp里的Split只能给一个字符串参数来当分割符。我查阅了一些资料,没有找到ASP里的Split定义多个分割符的方法。 看来只有自己处理了,最后找出一种方法:先把源字符串里我们认为要被当做分割符的字符都转换成一个特定的字符,比如“,”。然后我们再用这个特定的分割符来进行分割,例子如下:
复制代码 代码如下: 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,",")
这样就实现了Asp里的Split使用多个分割符的方法了。
学而无思则不进,所以接下来想到了C#里的Split的工作方法。 怎么样能达到不错的效率呢?如果它先用char[0]来分割字符串,然后再用char[1]分割,再用char[2],char[3]... 这样多次分割后再组成一个数组来得到最终的结果。似乎这样做的效率并不高,个人觉得也不会用这种方法来处理。
所以个人觉得C#里的Split可以也是按上面ASP里的方法来实现的Split的char[]分割?先用把source里和Char[]的相同的字符都转成一个特定的分割符,或许不是',' 或许是一个我们字符串里基本不可能出现的Char,这样安全性更高。然后再用这个特定的分割符来进行分割。这样效率应该会高不少。 |