检查字符串内容? 字符串长度与空字符串

哪种编译器效率更高,检查字符串是否为空的最佳做法?

  • 检查字符串的长度是否为== 0
  • 检查字符串是否为空(strVar ==“”)
  • 另外,答案是否依赖于语言?


    是的,这取决于语言,因为字符串存储在不同语言之间不同。

  • Pascal类型的字符串: Length = 0
  • C风格的字符串: [0] == 0
  • .NET: .IsNullOrEmpty
  • 等等。


    在使用C风格(以空字符结尾)字符串的语言中,与""比较会更快。 这是一个O(1)操作,而采用C风格字符串的长度是O(n)。

    在存储长度作为字符串对象(C#,Java,...)的一部分的语言中,检查长度也是O(1)。 在这种情况下,直接检查长度会更快,因为它避免了构建新空字符串的开销。


    在.Net中:

    string.IsNullOrEmpty( nystr );
    

    字符串可以为空,所以.Length有时会抛出NullReferenceException

    链接地址: http://www.djcxy.com/p/4721.html

    上一篇: Checking for string contents? string Length Vs Empty String

    下一篇: (.1f+.2f==.3f) != (.1f+.2f).Equals(.3f) Why?