相关疑难解决方法(0)

使用分隔符拆分字符串,但在C#中保留结果中的分隔符

我想用分隔符拆分一个字符串,但在结果中保留分隔符.

我怎么用C#做这个?

c# string split

20
推荐指数
3
解决办法
2万
查看次数

C#split string但保留分隔符

已经存在类似的问题,但所有问题都使用regexen.我正在使用的代码(剥离分隔符):

string[] sentences = s.Split(new string[] { ". ", "? ", "! ", "... " }, StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)

我想在句子分词上分割一段文字并保留句子终结符.我想避免使用regexen来提高性能.可能吗?

c# string

3
推荐指数
1
解决办法
1612
查看次数

分开一个长串

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"保持在一起.

感谢您的关注,

.net c#

3
推荐指数
1
解决办法
218
查看次数

使用String.Split后保留分隔符

我想使用多个分隔符分割字符串,如下所示:

"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)

有一个简单的方法吗?

c# split

3
推荐指数
1
解决办法
933
查看次数

标签 统计

c# ×4

split ×2

string ×2

.net ×1