当前位置: 首页 > 编程语言 > C#

分裂字符串没有string.Split分享

时间:2023-04-10 16:45:44 C#

C#学习教程:在不使用string.Split的情况下拆分字符串下面是我想出的工作代码。我想知道如何改进O(n)运行时间?此外,欢迎提出任何改进建议。publicstaticstring[]split(stringtxt,char[]delim){char[]text=txt.ToCharArray();字符串[]结果=新字符串[0];整数计数=0;诠释我=0;StringBuilderbuff=newStringBuilder();while(i1)//你在字符串上拆分而不是字符{//在这里执行字符串搜索算法}elseif(delimiter.Length==0){thrownewInvalidOperationException("Invaliddelimiter.");}else//你正在拆分一个字符{chardelimChar=delimiter[0];for(inti=0;iC#的String.Split()确实接受分隔符数组,但我不相信它会在O(n)时间内完成拆分。如果您正在研究字符串搜索算法,这些可能会有所帮助。http://en.wikipedia.org/wiki/String_searching_algorithm编辑:我错误地提到了C#的String.Split()API不采用分隔符数组的事实。如果将分隔符放入HashSet,你可以把它变成O(n)。测试一个值在HashSet中是否存在是O(1)。vardelimterSet=newHashSet(delim);…if(delimterSet.Contains(txt[i]){...但是,对于少量的分隔符,这不会提高性能。String.Split不能在O(n)中执行,因为必须遍历/搜索分隔符列表。也许你可以尝试一次完成所有的工作。以上就是C#学习教程:不带字符串的拆分字符串。String[]Split(Stringtxt,char[]delim){if(txt==null)返回新的String[0];//或异常if(delim==null||delim.Length==0)returnnewString[0];//或异常char[]text=txt.ToCharArray();字符串[]结果=新字符串[1];//如果字符串中没有分隔符,则返回整个字符串intpart=0;intitemInArray=1;for(inti=0;i本文收集自网络,不代表立场,如涉及侵权,请点右联系管理员删除,转载请注明出处: