• C#中IsNullOrEmpty和IsNullOrWhiteSpace的使用方法有什么区别?


    前言

    今天我们将探讨C#中两个常用的字符串处理方法:IsNullOrEmpty和IsNullOrWhiteSpace。这两个方法在处理字符串时非常常见,但是它们之间存在一些细微的区别。在本文中,我们将详细解释这两个方法的功能和使用场景,并帮助您更好地理解它们之间的区别。

    IsNullOrEmpty

    作用

    该方法用于检查字符串是否为null或空字符串("")。如果字符串为null或长度为0,返回true;否则返回false。这个方法只关注字符串的长度,不考虑其中的空白字符。

    源码实现

        /// 
        /// 判断字符串是否为null或者为空字符串
        /// 
        /// 字符串
        /// 
        public static bool IsNullOrEmpty([NotNullWhen(false)] stringvalue)
        {
            return value == null || value.Length == 0;
        }
    

    示例

        public static void Main(string[] args)
        {
            string str1 = null;
            string str2 = "";
            string str3 = " ";
            string str4 = "追逐时光者";
    
            Console.WriteLine(IsStringNullOrEmpty(str1));// 输出:True
            Console.WriteLine(IsStringNullOrEmpty(str2));// 输出:True
            Console.WriteLine(IsStringNullOrEmpty(str3));// 输出:False
            Console.WriteLine(IsStringNullOrEmpty(str4));// 输出:False
        }
    
        public static bool IsStringNullOrEmpty(string str)
        {
            return string.IsNullOrEmpty(str);
        }
    

    IsNullOrWhiteSpace

    作用

    该方法用于检查字符串是否为null、空字符串("")或只包含空白字符。如果字符串为null、长度为0或只包含空白字符(例如空格、制表符、换行符),返回true;否则返回false。与IsNullOrEmpty不同,IsNullOrWhiteSpace会考虑字符串中的空白字符。

    源码实现

        /// 
        /// 字符串是否为null、空字符串或只包含空白字符[(空格、制表符、换行符等空白字符)]
        /// 
        /// 字符串
        /// 
        public static bool IsNullOrWhiteSpace([NotNullWhen(false)] stringvalue)
        {
            if (value == nullreturn true;
    
            for (int i = 0; i < value.Length; i++)
            {
                //判断每个字符是否为空白字符,如果存在任何一个非空白字符,即字符不是空格、制表符或换行符等空白字符,
                //那么条件 !char.IsWhiteSpace(value[i]) 就会为真,此时立即返回 false,表示该字符串不是空字符串。
                if (!char.IsWhiteSpace(value[i])) return false;
            }
    
            return true;
        }
    

    示例

        public static void Main(string[] args)
        {
            string str1 = null;
            string str2 = "";
            string str3 = " ";
            string str4 = "追逐时光者";
    
            Console.WriteLine(IsStringNullOrWhiteSpace(str1));// 输出:True
            Console.WriteLine(IsStringNullOrWhiteSpace(str2));// 输出:True
            Console.WriteLine(IsStringNullOrWhiteSpace(str3));// 输出:True
            Console.WriteLine(IsStringNullOrWhiteSpace(str4));// 输出:False
        }
    
        public static bool IsStringNullOrWhiteSpace(string str)
        {
            return string.IsNullOrWhiteSpace(str);
        }
    
  • 相关阅读:
    前端面试宝典React篇06 setState 是同步更新还是异步更新?
    使用 Zookeeper命令行修改 Kafka Cluster ID
    第十一周任务总结
    计算机毕业设计JavaGuiTar网站设计(源码+系统+mysql数据库+lw文档)
    电子招标采购系统源码项目说明+开发类型+解决方案+功能描述
    关于cinderclient命令行解析
    关于 Linux Shell文件的三个时间
    关于安卓刷机的一些基础知识及术语
    智能客服能用于哪些场景?
    前端学习基础知识
  • 原文地址:https://www.cnblogs.com/Can-daydayup/p/17539077.html