我有这样的输入字符串(从.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
但是发生了什么?
您的问题在于使用ToCharArray()
。
String.Split()
重载需要你正在使用的char[]
,它将使用每个单独的字符作为分隔符:因此,通过传入"<br>".ToCharArray()
,它给出了<br>
的组成字符,你将你的字符串分成任何<
,b
,r
或>
,你会同意这不是你想要的。
现在,没有选项拆分单个字符串的重载,但是很容易绕过这个:
var items = mystring.Split(new[] { "<br>" }, StringSplitOptions.None);
尝试使用RegEx.Split
var items = RegEx.Split(mystring, "<br>");
这将分为<br>
的完全匹配,而不是像其他答案中所说的那样单独分割。