C#中IsNullOrEmpty和IsNullOrWhiteSpace的区别?

发布时间:2024年01月24日

前言

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

IsNullOrEmpty

作用

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

源码实现

????///?<summary>
????///?判断字符串是否为null或者为空字符串
????///?</summary>
????///?<param?name="value">字符串</param>
????///?<returns></returns>
????public?static?bool?IsNullOrEmpty([NotNullWhen(false)]?string??value)
????{
????????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会考虑字符串中的空白字符。

源码实现

????///?<summary>
????///?字符串是否为null、空字符串或只包含空白字符[(空格、制表符、换行符等空白字符)]
????///?</summary>
????///?<param?name="value">字符串</param>
????///?<returns></returns>
????public?static?bool?IsNullOrWhiteSpace([NotNullWhen(false)]?string??value)
????{
????????if?(value?==?null)?return?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);
????}

C#/.NET/.NET Core面试宝典

本文内容已加入C#/.NET/.NET Core面试宝典中,关注公众号【追逐时光者】后回复【4】C#/.NET/.NET Core面试宝典(基础版),回复其他关键字获取更多.NET相关学习资料。

图片

图片

文章来源:https://blog.csdn.net/qq_37237487/article/details/135831532
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。