StringBuffer赋空值

本文详细介绍了使用Java代码批量导入Excel文件中的报价数据,并针对特定字段进行证书校验的过程。通过案例分析了如何在代码中处理字符串比较问题,以及在批量导入数据时确保数据的一致性和准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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-->
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值