zoukankan      html  css  js  c++  java
  • 有关Asp里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,这样安全性更高。然后再用这个特定的分割符来进行分割。这样效率应该会高不少。

    那么C#里到底是不是这样实现的,或者更高效的方法呢?希望有达人来指教分析一下。
  • 相关阅读:
    搜索专题题解(FJUT
    Fliptile(枚举+DFS)
    Tempter of the Bone(DFS+剪枝)
    转换地图 (康托展开+预处理+BFS)
    C++输入输出常用格式(cin,cout,stringstream)
    FJUT
    STL迭代器
    几道STL题目(FJUT
    STL容器(Stack, Queue, List, Vector, Deque, Priority_Queue, Map, Pair, Set, Multiset, Multimap)
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/aowind/p/578674.html
Copyright © 2011-2022 走看看