我有这样的输入字符串(从.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
但是怎么回事?
答案 0 :(得分:9)
您的问题是使用ToCharArray()
。
使用String.Split()
的{{1}}重载将使用每个单独的字符作为定界符:因此,通过传入char[]
可以得到组成字符的"<br>".ToCharArray()
中,您要用<br>
,<
,b
或r
中的任何一个来分割字符串,这会是您所不想要的
现在,对于没有选项的单个字符串分割,没有重载,但是很容易绕开它:
>
答案 1 :(得分:1)
尝试使用RegEx.Split
var items = RegEx.Split(mystring, "<br>");
这将在<br>
的完全匹配项上拆分,而不是像其他答案中所述的那样在字符上拆分。