我很好奇,为什么.NET string.Empty.Split()
会返回一个包含空格字符的项?
答案 0 :(得分:1)
声明中的一个小修正。 string.Empty.Split()
不会返回带空格字符的项目,但会返回带有空字符串的项目。这是因为方法split()在没有参数时将白色空间视为分隔符。但是string.Empty
中没有空格。所以它只是在输出数组的第一项中返回string.Empty。
答案 1 :(得分:0)
string.Empty.Split()
返回一个字符串数组,其第一个位置的值为string.Empty
。你会期待什么?
附加信息:第一个匹配项之前的所有内容都作为第一个元素返回。如果没有匹配,则在第一个位置返回字符串本身。
答案 2 :(得分:0)
如果您没有为Split
方法提供任何分隔符,则uses whitespaces by default:
private unsafe int MakeSeparatorList(char[] separator, ref int[] sepList) {
...
if (separator == null || separator.Length ==0) {
...
// If they passed null or an empty string, look for whitespace.
因此,当您调用string.Empty.Split()
时,您试图通过空白字符拆分一个emtpy字符串。没有,所以该方法返回整个字符串作为唯一的结果。与调用"Hello!".Split
完全一样,将返回string[] { "Hello!" }
答案 3 :(得分:0)
它没有see
using System;
public class Program
{
public static void Main()
{
Console.WriteLine("ehh \"" + string.Empty.Split()[0] + "\"");
}
}
返回:
ehh ""