StringBuffer赋空值

原创 2015年07月07日 15:00:33

Excel文件批量导入报价,校验"证书"并连接多个"证书"时的JAVA代码如下:

[c-sharp] view plaincopy

 

StringBuffer certify = new StringBuffer();  

  

……  

  

case 11: // 校验证书(1):FAA8130-3 FORM  

if (rowData[11] != null && !rowData[11].equals(""))  

     certify.append("FAA8130-3 FORM");  

  

case 12: // 校验证书(2):EASA FORM1  

10 if (rowData[12] != null && !rowData[12].equals("")) {  

11      if (certify.toString().equals(""))  

12     certify.append("EASA FORM1");  

13      else                     

14         certify.append(", EASA FORM1");  

15 }  

 

 

原先用的certify.equals("")方法判断StringBuffer的值是否为空值,但是发现certify为空值时,if返回都是false,后来上网看到这段才恍然大悟:

原来Objectequals()方法跟 == 是一样的 , 
public boolean equals(Object obj) { 
    return (this == obj); 
    } 
StringBuffer没有重写equals方法,所以 
StringBuffer a = new StringBuffer(a); 
StringBuffer b = new StringBuffer(a); 
a.equals(b);这句跟a==b的效果一样,返回是false。 

string则重写了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; 
    }

StringBuffer类型certify.equals("")判断的是certify和字符""是否为同一个对象,结果肯定不是。所以需要判断StringBuffer字符值是否相等,需要用certify.toString().equals("")判断才行。

 

<!--EndFragment-->

数组长度为零和空引用的区别 files!=null&files.length()>0 空指针或赋空值

在判断非空的时候 常常用到files!=null&files.length()>0 那么很多人好奇长度等于0不就是空吗 言简意赅的说: 数组初始化为总结为两种: 空指针:数组=null ...

[Hive]Hive使用指南七 空值与NULL

1. NULL(null)值创建一个临时表tmp_null_empty_test,并插入一些NULL数据:CREATE TABLE IF NOT EXISTS tmp_null_empty_test...

oracle处理空值的方法

  • 2008年07月21日 17:13
  • 2KB
  • 下载

hive中的NULL(hive空值处理)

HIVE中默认将NULL存为\N,可以在线上用hadoop fs -cat查看源文件,文件中存储大量\N, 这样量大会浪费大量空间。如果用java、python操作源数据时要注意解析。 另...

java bean对象转换json对象时过滤空值

由于从数据库获取到的总是有空值或者”“的情况,而且从数据库获取到数据封装到java中,再转换成json数据格式,这种事情已经司空见惯了。 但是在某些特定的场合下json数据中空值或者”“的会影响项目...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:StringBuffer赋空值
举报原因:
原因补充:

(最多只允许输入30个字)