.net中null和空字符串之间的区别

时间:2011-11-14 21:11:02

标签: c# .net

试图解决这个问题,无法在任何地方找到答案。如果我有一个字符串,我将其拆分在空格中,如:

string[] arr_str = sentence.split(' ');

我将获得一个包含字符串的数组。现在,如果我在句子中输入双空格,我将得到带空字符串(“”)的arr_str单元格。

我的问题是为什么?为什么不用空格???

当我检查arr_str时,为什么我需要检查空字符串而不是null或空格?

为什么只有空字符串可以工作?

4 个答案:

答案 0 :(得分:1)

它对一个角色执行拆分,不包括该角色。结果你得到了分裂字符之间的子串,在这种情况下,它们只是空字符串。

但是,如果需要,可以通过向方法传递适当的枚举来过滤掉空字符串。

答案 1 :(得分:1)

您正在分割一个字符串,这将产生字符串。

如果你拆分了一个双空格,那么两个空格都会被移除,但是emtpy字符串仍然存在,那就是你的结果。

答案 2 :(得分:1)

如果输入双精度空格,则按空格分割将获取两个连续空格之间的字符串,这是一个空字符串。就像space space = space empty_string space。

答案 3 :(得分:1)

空字符串是没有值的字符串,空字符串是没有引用的字符串(尚未启动)。 空字符串不会占用内存空间,但空字符串会将空间分配给内存。