黑马程序员技术交流社区

标题: “”和" "空格,null tab键区分 [打印本页]

作者: 吕柳根    时间: 2013-6-26 23:32
标题: “”和" "空格,null tab键区分
question:""" " 还有一个空格两个空格的区别,还有是null的区别,还有就是按tab键,还有回车??????????几个搞得头大
这七个怎么区分,我们常说的不能为空,是不能为""还是不能为null ,还是什么????
求高手解答,谢谢!

作者: 菜鸟励志要逆袭    时间: 2013-6-27 11:14
关于""、" "、一个空格、两个空格、null、tab可以放在一个字符串中(回车键暂时还不知道该怎么办),然后转换成字符数组的方式来区分。
     string str1 = null;
            try
            {
                char[] myChar1 = str1.ToCharArray();
                Console.Write(str1);
                Console.WriteLine(myChar1.Length);
            }
            catch {
                Console.WriteLine("str1的初始值为NULl");
            }

            Console.ReadKey();
            string str2 = "";
            char[] myChar2 = str2.ToCharArray();
            Console.Write(str2);
            Console.WriteLine(myChar2.Length);
            Console.ReadKey();
            string str3 =" ";
            char[] myChar3 = str3.ToCharArray();
            Console.Write(str3);
            Console.WriteLine(myChar3.Length);
            Console.ReadKey();
            string str4 = "  ";
            char[] myChar4 = str4.ToCharArray();
            Console.WriteLine(str4);
            Console.WriteLine(myChar4.Length);
            Console.ReadKey();
            string str5 = "    ";
            char[] myChar5 = str5.ToCharArray();
            Console.WriteLine(str5);
            Console.WriteLine(myChar5.Length);
            Console.ReadKey();

        }
我们常说的不能为空是指null.比如一个箱子,里面什么都没有,但是存在的。而null就表示连这个箱子都没有。
不知道理解的对否,如理解有误,望大神批评指正。
作者: leayon    时间: 2013-6-27 14:40
本帖最后由 leayon 于 2013-6-27 14:42 编辑

我们常说的不能为空指的是不能为null,
如:string str1 = "";       string str2 = null;   在这两个表达式里面,str1表示一个长度为0的字符串,str2表示这个变量里面什么东西都没有。
      string str3 = " ";表示str3是一个由一个空格字符组成的长度为1的字符串。同理,两个空格就表示由两个空格字符组成的长度为2的字符串,它们两个是不一样的,你可以写代码用equals验证一下它们两个是否相等。
      tab键只是表示一个制表符,它表示8个空格字符,使光标由第一个位置跳到第9个位置,在输出语句中,通常用"\t"来表示。
      回车键就是换行显示啊。
楼主可按照下面的代码运行一下就明白了。
static void Main(string[] args)
        {
            string str1 = " ";             //一个空格组成的字符串
            string str2 = "  ";          //两个空格组成的字符串
            string str3 = "\ta";             //一个制表符加一个字符a组成的字符串
            string str4 = "        a";         //八个空格加一个字符a组成的字符串
            Console.WriteLine(str1.Equals(str2));
            Console.WriteLine(str3);            Console.WriteLine(str4);
            Console.WriteLine(str3.Equals(str4));
            Console.ReadKey();
        }
打印输出的语句如下:
False
        a
        a
False

可以看到如果字符串中有"\t",那么它只在  用string.Format()格式化  或  输出这个字符串  的时候才表示下一个制表位,如果在程序中拿这个字符串进行其它的操作,那么它只是 一个普通的字符串。
换行符"\n"也同样如此。


作者: 吕柳根    时间: 2013-6-27 16:29
leayon 发表于 2013-6-27 14:40
我们常说的不能为空指的是不能为null,
如:string str1 = "";       string str2 = null;   在这两个表达 ...

很精简!貌似懂了
作者: dongqinglove    时间: 2013-6-27 16:55
谢谢,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2