【发布时间】:2021-03-24 08:13:33
【问题描述】:
我在https://docs.microsoft.com/en-us/dotnet/api/system.string.split?view=net-5.0看到这个
分隔符的每个元素定义一个单独的分隔符。如果 两个分隔符相邻,或者在开头找到一个分隔符 或者这个实例的结尾,返回的对应元素 数组包含 Empty。
string str = "Hello.. How.. are.. you?";
string[] words = str.Split(new char[] { '.' });
foreach (string s in words)
{
MessageBox.Show(s);
}
输出是:你好“”你怎么样?
string str = "Hello. How. are. you?";
string[] words = str.Split(new char[] { '.' });
foreach (string s in words)
{
MessageBox.Show(s);
}
输出是:你好,你好吗?
为什么会这样?
【问题讨论】:
-
什么意思?为什么不会发生?在
..中的.和.之间有一个空字符串。 -
我无法正确理解。另一个例子:
str = "42..12..19."output = {"42", "", "12", "", "19", ""} -
我不懂你不懂的。你能提供更多关于这个场景让你感到困惑的细节吗?对于每个
.,您都会在其任一侧获得一个新字符串。所以一个有 6 个.的字符串在拆分时会产生一个由 7 个字符串组成的数组。一个有 2 个.的字符串,在拆分时会产生一个由 3 个字符串组成的数组。 -
即使
"......"也会产生一个包含 7 个(空)字符串的数组。 -
这能回答你的问题吗? c# split string and remove empty string