我有这样的输入字符串(从.NET调试器粘贴):
"g: 17.00 2D nap<br>\ng: 14.30 2D dub ; 17.15 3D nap<br>\ng: 14.30 3D dub ; 17.15 2D nap<br>\ng: 17.00 2D dub<br>\ng: 17.00 3D dub"
我正试着用"<br>"
拆分它
var items = mystring.Split("<br>".ToCharArray()); // 7 elements
我得到了7个列表元素,而不是5个。
看起来Split
函数也被";“分隔符拆分了。
现在,我找到了这样的解决方法:
var items = mystring.Replace("<br>", "|").Split("|".ToCharArray()); // 5 elements
但是这是怎么回事呢?
发布于 2018-09-04 06:38:21
您的问题在于ToCharArray()
的使用。
接受您正在使用的char[]
的String.Split()
重载将使用每个单独的字符作为分隔符:因此,通过传入"<br>".ToCharArray()
(它提供了<br>
的组成字符),您可以将字符串拆分为<
、b
、r
或>
中的任何一个,您会同意这不是您想要的结果。
现在,没有重载来拆分没有选项的单个字符串,但是很容易绕过这一点:
var items = mystring.Split(new[] { "<br>" }, StringSplitOptions.None);
发布于 2018-09-04 06:46:39
尝试使用RegEx.Split
var items = RegEx.Split(mystring, "<br>");
这将根据<br>
的精确匹配进行拆分,而不是像其他答案中所说的那样单独拆分字符。
https://stackoverflow.com/questions/52156774
复制相似问题