已经存在类似的问题,但所有问题都使用regexen.我正在使用的代码(剥离分隔符):
string[] sentences = s.Split(new string[] { ". ", "? ", "! ", "... " }, StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)
我想在句子分词上分割一段文字并保留句子终结符.我想避免使用regexen来提高性能.可能吗?
A具有以下输入字符串:
string input =
"Ta005000000000000000000Tb001700000000000000000Sa005000000000000000000" +
"Sb002500000000000000000F 00000000000000000I 00000000000000000N" +
" 00000000000000000FS 00000000000000000IS 00000000000000000NS" +
" 00000000000000000";
Run Code Online (Sandbox Code Playgroud)
我需要将这个字符串分成几部分,但内容变化很大.
必须将此字符串放入如下列表中:
[0] "Ta005000000000000000000"
[1] "Tb001700000000000000000"
[2] "Sa005000000000000000000"
[3] "Sb002500000000000000000"
[4] "00000000000000000I"
[5] "00000000000000000N"
[6] "0000000000000000FS"
[7] "0000000000000000IS"
[8] "0000000000000000NS"
[9] "000000000000000000"
Run Code Online (Sandbox Code Playgroud)
在这种情况下我唯一知道的是字符串的最大长度是23.因此,在这个例子中,我需要分离字符串返回的fisrt部分的'T'或'S'.或者,如果没有出现这些字符,则用空格分隔(它发生在我的字符串返回的最后一部分).我这样做了:
var linq = test.Split(new[] { 'T', 'S', ' ', '{', '}' }, StringSplitOptions.RemoveEmptyEntries).ToList();
Run Code Online (Sandbox Code Playgroud)
我的"test"是一个包含返回字符的StrintBuilder.通过这样做,我可以将我的列表分开,但在这种情况下,我丢失了一个非常重要的信息,即"T"和"S".
嗯,不知道它是否清楚,但它似乎是如此简单,给我一个巨大的头痛.
Obs:其他问题是,例如:"0000000000000000FS",在这部分字符串中我需要将"FS"保持在一起.
感谢您的关注,
我想使用多个分隔符分割字符串,如下所示:
"aa*ab+ac/ad-ae=af;ag".Split(new string[] { ";", "*", "+", "/", "-" })
Run Code Online (Sandbox Code Playgroud)
回来
{ "aa", "ab", "ac", "ad", "ae", "af", "ag" }
Run Code Online (Sandbox Code Playgroud)
但是,如果我希望将分隔符保留在最终数组中,例如
{ "aa", "*", "ab", "+", "ac", "/", "ad", "-", "ae", "=", "af", ";", "ag" }
Run Code Online (Sandbox Code Playgroud)
有一个简单的方法吗?