【问题标题】:String.IsNullOrEmpty() Check for SpaceString.IsNullOrEmpty() 检查空间
【发布时间】:2010-03-31 11:14:00
【问题描述】:

需要什么才能使String.IsNullOrEmpty() 将空白字符串计数为空?

例如。我希望以下内容返回true,而不是通常的false

String.IsNullOrEmpty(" ");

有没有比以下更好的方法:

 String.IsNullOrEmpty(" ".Trim());

(请注意,最初的问题是询问正常情况下的回报是什么,因此没有同情心的 cmets,这已被替换为更明智的问题)。

【问题讨论】:

  • 你试过了吗?它将返回 false,因为您传递的字符串既不是 null 也不是空字符串。
  • 为什么不自己做个简单的测试程序自己试试呢?
  • Paddy:如果我不使用 Trim(),它将返回 false 我自己尝试过,这就是我向你们询问的原因。从我的角度来看,我们开发人员经常使用修剪,它也必须使用修剪功能,这就是我的想法。
  • Sky Sanders:为了什么懒惰,我已经尝试过,现在向你们的人民询问。看看 João Angelo 给出的答案,这正是我正在寻找的,但它在下一个版本中。

标签: c#


【解决方案1】:

.NET 4.0 将引入方法String.IsNullOrWhiteSpace。在此之前,如果您想以与处理空字符串相同的方式处理空白字符串,则需要使用 Trim

对于不使用 .NET 4.0 的代码,可以像这样实现检查 null 或空字符串或空白字符串的辅助方法:

public static bool IsNullOrWhiteSpace(string value)
{
    if (String.IsNullOrEmpty(value))
    {
        return true;
    }

    return String.IsNullOrEmpty(value.Trim());
}

String.IsNullOrEmpty 不会执行任何修剪,只会检查字符串是空引用还是空字符串。

【讨论】:

  • 嗯,当 .net 4.0 发布时,如果您将其作为 String 上的扩展方法执行,那将如何表现? ...或者等一下,您不能仅将 String 的扩展写入字符串的实例,还是我错了?
  • @cyberzed,这本身就是一个问题。您对仅适用于字符串实例的扩展方法是正确的。而且由于 .NET 4.0 上的新方法是 String 类上的静态方法,因此不会发生冲突。
  • 呵呵,我自己想出了答案,就像我点击“添加评论”按钮一样,所以我决定把它留给其他人参考:)
【解决方案2】:
String.IsNullOrEmpty(" ")

...返回 False

String foo = null;
String.IsNullOrEmpty( foo.Trim())

...foo 为 Null 时引发异常。

String.IsNullOrEmpty( foo ) || foo.Trim() == String.Empty

...返回真

当然,您可以将其实现为扩展函数:

static class StringExtensions
{
    public static bool IsNullOrWhiteSpace(this string value)
    {
        return (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim()));
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-25
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    相关资源
    最近更新 更多