我有一个字符串变量,基本上是3个字符串,每个字符串相隔一个空格。这3个字符串的长度可能不同。 喜欢
string line="XXX YY ZZ";
现在,偶尔会发生我的字符串变量line
,由3个字符串组成,其中第一个和第二个字符串由2个空格分隔,而不是一个。
string line="XX YY ZZ";
我想要做的是将3个字符串存储在字符串数组中。喜欢:
string[] x
其中x[0]="XXX"
,x[1]="YY"
,x[2]="ZZ"
我尝试使用Split功能。
string[] allId = line.Split(' ');
它适用于第一种情况,而不适用于第二种情况。有没有任何简洁明了的方法呢?
答案 0 :(得分:11)
只需从结果中删除空字符串:
var allId = line.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
答案 1 :(得分:8)
使用正则表达式拆分。为什么?空间不是代表空间的唯一角色;还有标签。
通过使用带有\s+
模式的正则表达式拆分,即使混合使用制表符和空格,该操作也将消耗所有空间组合,从而允许返回文本。实施例
var result = Regex.Split("XX YYY ZZZ", @"\s+");
// "XX", "YYY", "ZZZ" returned in array
模式摘要
\s
表示任何非字符,空格或制表符。
+
之后,我预计至少有一个,但可以找到不止一个。
因此+
之后的\s
意味着正则表达式处理器将寻找一个或多个空格作为匹配分割。将返回比赛之间的所有内容。
答案 2 :(得分:2)