如何检测字符串是否为空?

时间:2009-03-09 15:33:46

标签: string

如何确定字符串是否包含任何字母字符?

换句话说,如果字符串中只有空格,我该如何将其视为空字符串?

11 个答案:

答案 0 :(得分:8)

尝试:

if the_string.replace(" ", "") == "":
    the_string = ""

如果您的语言支持它,使用“trim”,“strip”或“chomp”删除前导/尾随空格也可能很好......

编辑:当然,正则表达式也可以解决这个问题:the_string.match("[^\s]") ...或自定义函数......或任意数量的事情。

修改: 在Caml:

let rec empty_or_space = fun
      [] -> true
    | (x::xs) -> x == ` ` and empty_or_space xs;;

修改: 根据要求,在LOLPYTHON:

BTW OHAI
SO IM LIKE EMPTY WIT S OK?
    LOL IZ S EMPTIE? DUZ IT HAZ UNWHITESPACE CHAREZ /LOL
    IZ S KINDA LIKE ""?
        U TAKE YEAH

    IZ S LOOK AT EASTERBUNNY OK KINDA NOT LIKE " "?
        U TAKE MEH

    U TAKE EMPTY WIT S OWN __getslice__ WIT CHEEZBURGER AND BIGNESS S OK OK

答案 1 :(得分:4)

在C#中,你应该使用String.IsNullOrEmpty。

要将其视为空字符串,您只需使用“”或string.Empty;检查它是否为空,有.Trim函数。

答案 2 :(得分:3)

C ++

#include <string>

bool isEmptyOrBlank(const std::string& str)
{
   int len = str.size();
   if(len == 0) { return true; }

   for(int i=0;i<len;++i)
   {
       if(str[i] != ' ') { return false; }
   }
   return true;
}

C

#include <string.h>

int isEmptyOrBlank(const char* str)
{
  int i;
  int len;

  len = strlen(str);

  //String has no characters
  if(len == 0) { return 1; }

  for(i=0;i<len;++i)
  {
     if(str[i] != ' ') { return 0; }
  }

  return 1;
}

爪哇

boolean isEmptyOrBlank(String str)
{
  int len = str.length();
  if(len == 0) { return true; }

  for (int i = 0; i < len; ++i)
  {
    if (str.charAt(i) != ' ')  { return false; }
  }

  return true;
}

你明白了,你可以用任何语言做类似的事情。

答案 3 :(得分:2)

如果你在谈论.Net(C#或vb),那么你可以修剪()它以删除空格。

答案 4 :(得分:1)

if (s =~ /^\w*$/)
只要您使用Perl,

就可以正常工作。

有人有LOLCODE版本吗?

答案 5 :(得分:0)

如果您使用的是.NET,则字符串类型具有.Trim()方法,可以去除前导和尾随空格。

答案 6 :(得分:0)

如果你真的想把一个只包含空格的字符串视为一个空字符串(它不是,但这是一个不同的故事),只需使用你选择的语言提供的任何剥离方法(string.lstrip()和string。例如,Python中的rstrip())并检查结果字符串的长度是否为0。

答案 7 :(得分:0)

微软添加此方法的那种人

string myStr = "    ";    
string.IsNullOrWhiteSpace(myStr)

如果你使用.net。

,这将完成这项工作
string myStr = "    ";    
string.IsNullOrEmpty(myStr.Trim()));

如果您使用的是.net 3.0或更高版本,那么您可能希望为此创建一个可以与任何字符串一起使用的扩展方法。

namespace StringExtensions
{
    public static class StringExtensionsClass
    {
        public static string IsWhiteSpace(this string s)
        {
            return string.IsNullOrEmpty(s.Trim()));
        }
    }
}

然后您可以像这样使用

string myStr = "    ";
if (myStr.IsWhiteSpace())
    Console.Write("It just whitespace");

希望这就是你所追求的目标。

答案 8 :(得分:0)

规范方法,无论语言如何,都是修剪字符串(修剪函数删除字符串开头和结尾处的空格)并将结果与​​空字符串进行比较:

if (trim(myString) == "") {
    // string contains no letters, numbers, or punctuation
}

然而,并非所有语言都具有原生修剪功能。这是一个很好的,通用的JavaScript,因为我还没有看到JS的例子:

function trim(str) {
    return str.replace(/^\\s+|\\s+$/g, "");
}

(查看Steven Levithan's post about JavaScript trim functions进行深入比较。)

或者,您可以使用正则表达式来测试“空虚”:

if (/^\s*$/.test(str)) {
    // string contains no letters, numbers, or punctuation
}

同样,并非所有语言本身都支持正则表达式。查看您的语言文档。

答案 9 :(得分:0)

a = ' '
b = a if a.replace(' ','') else a.replace(' ','')

答案 10 :(得分:-2)

C#:

空均值(MSDN)该字段的值是零长度字符串“”。

因此,如果你有空格,它就不会是空的

private bool IsEmtpyOrContainsAllSpaces(String text)
        {
            int count = 0;
            foreach (char c in text)
            {
                if (c == ' ')
                {
                    count++;
                }
            }
            return (count == text.Length);
        }