c#仅在找到定界符时才拆分字符串

时间:2018-08-28 05:58:32

标签: c# .net string split

string search = "Apple : 100";

string[] result = search .Split(':');

工作正常,输出如下:

result[0] ==> Apple
result[1] ==> 100

但是为此:

string search  = "Apple";    
string[] result = search .Split(':');

输出:

result[0] ==> Apple

为什么输出的是Apple?如果搜索string中缺少定界符,我只想要空数组。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:7)

String.Split的工作方式是返回一个包含分割段的数组。如果分隔符不存在,则只有一个段-整个字符串。从documentation(在返回值详细信息下):

  

如果该实例不包含分隔符中的任何字符串,则返回的数组由包含该实例的单个元素组成。

要做你想做的事

var result = search.Contains(':') ? search.Split(':') : new string[0];

答案 1 :(得分:0)

如果string不包含用作定界符的字符,则它将返回包含整个字符串的数组作为数组元素。 在您的情况下,字符串Apple不包含定界符。这就是原因,数组包含整个字符串,即Apple作为第零个元素

参考:MSDN Spit() function