📅  最后修改于: 2023-12-03 15:10:34.433000             🧑  作者: Mango
在 C# 编程中,经常需要检查一个字符串是否为空或者只包含空格。这种情况下,可以使用以下几种方法:
我们可以使用 .NET 自带的 string.IsNullOrEmpty()
方法来检查一个字符串是否为空或者为 null
。
string str = " "; // 这是一个只包含空格的字符串,也被视为"空"
if (string.IsNullOrEmpty(str) || string.IsNullOrWhiteSpace(str))
{
Console.WriteLine("字符串为空或只包含空格");
}
else
{
Console.WriteLine("字符串不为空且不只包含空格");
}
上面的代码运行结果如下:
字符串为空或只包含空格
string.IsNullOrWhiteSpace()
方法可以判断字符串是否为空、只包含空格或者为 null
。
string str = " "; // 这是一个只包含空格的字符串,也被视为"空"
if (string.IsNullOrWhiteSpace(str))
{
Console.WriteLine("字符串为空或只包含空格");
}
else
{
Console.WriteLine("字符串不为空且不只包含空格");
}
上面的代码运行结果与方法1相同。
我们也可以使用正则表达式判断一个字符串是否为空或只包含空格。
string str = " "; // 这是一个只包含空格的字符串,也被视为"空"
if (Regex.IsMatch(str.Trim(), @"^\s*$"))
{
Console.WriteLine("字符串为空或只包含空格");
}
else
{
Console.WriteLine("字符串不为空且不只包含空格");
}
上面的代码使用了 Regex.IsMatch()
方法和 \s
、^
、$
正则表达式模式。
\s
表示空格符^
表示字符串的开头$
表示字符串的结尾所以,\s*
表示零个或多个空格符,而 ^
和 $
包括了整个字符串。如果字符串为空或只包含空格,那么 Trim() 后的字符串就是空字符串,而正则表达式可以将空字符串匹配出来。
所以,以上的方法能够判断字符串是否为空,但不能判断字符串是否为非法输入(例如:大量空格、制表符、换行符号等)。如果需要过滤掉这些非法输入,需要使用其它的方法(例如:输入框预处理、正则表达式等)。