1. 苏葳的备忘录首页
  2. 编程

.NET中Split方法分别用字符和字符串来分割字符串

c# 哈希表 序列化以前全心投入C#时注意过这一点,几年后就全忘掉了。今天遇到个错误,调试之后才发现这个问题。C#字符串的分隔方法用起来很方便。string.Split有几种重载形式。个人习惯用 “aaaa,aaaa,aaa”.Split(“,”.tochararray())的形式。非常简洁。然而,这其实是Split(new char[1]{‘,’})的表现形式。若你打算用cdc分割abcdcddecdcbb呢?用Split(“cdc”.tochararray())?这就错了。

上述形式等价于Split(new char[3]{‘c’,’d’,’c’}),实际上将把cdc拆成两个同时存在的分隔字符c和d,拆分结果自然与本意完全不同。

正确用法是使用Split的string数组拆分形式。Split(new []{“cdc”},StringSplitOptions.None),由于此形式必须搭上StringSplitOptions参数,那也无所谓了。如果用于拆分参数的字符串数组内有多个字符串,则均会作为拆分分界串,这点与前面的多个拆分分界字符是相似的。

特此记录。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/492.html

发表评论

邮箱地址不会被公开。 必填项已用*标注