str为一个字符串
str.equals("")和str.equals(" ")(引号中有个空格)有什么区别啊 ?

解决方案 »

  1.   

    str.equals("")表示空值,str.equals(" ")表示有个空字符
      

  2.   

    str.equals("")表示空字符串,str.equals(" ")表示有个空格的字符串
      

  3.   

    楼主可以看下equals的源代码
    public boolean equals(Object anObject) {
    if (this == anObject) {
        return true;
    }
    if (anObject instanceof String) {
        String anotherString = (String)anObject;
        int n = count;
        if (n == anotherString.count) {
    char v1[] = value;
    char v2[] = anotherString.value;
    int i = offset;
    int j = anotherString.offset;
    while (n-- != 0) {
        if (v1[i++] != v2[j++])
    return false;
    }
    return true;
        }
    }
    return false;
        }
    先判断是不是一个对象,是返回TRUE
    然后判断他们的length如果长度不一样直接返回false,""的length是0,而" "的length是1显然结果不一样。
    另外一个""中间是一个空格还是两个空格结果都是不一样的
      

  4.   

    简单的来时,""(没有空格)代表的是空,可以说成是NULL,当""有内容,包括括号,代表就是一个字符串,比较其的内容…
      

  5.   

    判断空串 最好使用工具类 org.apache.commons.lang.StringUtils.isEmpty() 方法判断