`
谷熙亚
  • 浏览: 52279 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

StringBuffer赋空值

    博客分类:
  • java
阅读更多

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-->
分享到:
评论

相关推荐

    StringBuffer

    StringBuffer StringBuffer 是 Java 中的一个类,用于高效地操作字符串,它可以避免频繁修改字符串导致的性能问题。下面是 StringBuffer 的相关知识点: 关键技术点 1. indexOf 和 lastIndexOf 方法:用于查找...

    StringBuffer类的总结

    ### StringBuffer 类的总结 #### 一、StringBuffer 类概述 `StringBuffer` 是 Java 中一个非常重要的类,它被设计用于处理字符串数据时提供高效的支持。相比于 `String` 类,`StringBuffer` 提供了更好的性能表现...

    String ,StringBuffer与StringBuilder

    String, StringBuffer 与 StringBuilder 的区别 在 Java 中,String, StringBuffer 和 StringBuilder 三个类都是用于字符操作的,但它们之间有着很大的区别。 首先,String 是不可变类,意味着一旦创建了 String ...

    Java语言中StringBuffer的用法

    在Java编程语言中,`StringBuffer`类是一个非常重要的工具,尤其在处理字符串连接操作时。相较于`String`类,`StringBuffer`提供了线程安全的动态字符串构建,避免了频繁创建新对象带来的性能开销。本文将深入探讨`...

    String&Stringbuffer

    ### String与StringBuffer知识点详解 #### 一、String与StringBuffer基本概念 **String**:在Java中,`String`类表示不可变的字符序列,它是最常用的字符串类。一旦创建了一个`String`对象,其内容便无法改变。这...

    String StringBuffer和StringBuilder区别之源码解析

    "String StringBuffer和StringBuilder区别之源码解析" 在Java中,字符串是我们经常使用的数据类型,而String、StringBuffer和StringBuilder是Java中三种常用的字符串类。在这篇文章中,我们将从源码角度对String、...

    Java中StringBuffer对象的初始化.pdf

    在Java编程语言中,`StringBuffer`类是一个非常重要的工具,尤其在处理字符串连接操作时。与`String`类不同,`StringBuffer`是可变的(mutable),这意味着它的内容可以在创建后进行修改,而无需创建新的对象。这种...

    String、StringBuilder和StringBuffer的区别

    在Java编程语言中,String、StringBuilder和StringBuffer都是用来处理字符串的类,它们之间存在一些重要的区别,主要涉及到性能和线程安全性。 首先,`String`类代表的是字符串常量,一旦创建,其内容就不能改变。...

    String和StringBuffer详细用法总结

    根据给定的信息,本文将对`String`与`StringBuffer`在Java中的使用进行详细的解析与对比,并结合实例深入分析二者的异同及其适用场景。 ### `String` 和 `StringBuffer` 的基本概念 #### `String` 在Java中,`...

    java高级特性StringBuffer类.doc

    Java 高级特性 StringBuffer 类 Java 高级特性中,StringBuffer 类是一个非常重要的类,它和 String 类一样用来代表字符串,但是由于内部实现方式的不同,StringBuffer 在进行字符串处理时,不生成新的对象,在内存...

    StringBuffer练习.doc

    StringBuffer练习.doc

    StringBuffer和String_区别

    ### StringBuffer与String的区别详解 #### 一、概念与特性 **String** 是 Java 中一个不可变的类,代表了字符序列。一旦一个 String 对象被创建后,其内容就不能被改变。这使得 String 类非常适合用来表示常量或者...

    String和StringBuffer的区别

    在Java编程语言中,`String`和`StringBuffer`都是用来表示和操作字符串的重要类,但它们在性能和使用场景上有显著的区别。 首先,`String`类是不可变的,这意味着一旦创建了一个`String`对象,它的内容就不能改变。...

    String与StringBuffer区别详解

    在Java中,处理字符串主要涉及到两个类:String和StringBuffer。这两个类虽然在功能上有许多相似之处,但它们在实现和性能上却有很大的差别。 首先我们来理解String。String类在Java中是不可变的,这意味着一旦一个...

    String、StringBuffer、StringBuilder的使用方法

    在Java编程语言中,`String`、`StringBuffer`和`StringBuilder`是处理字符串的三个重要类,它们各自有特定的使用场景和优缺点。理解它们的差异对于编写高效的代码至关重要。 **String类** `String`是不可变的类,...

    string与stringbuffer的区别

    字符串在Java中的表现形式主要有两种:`String`和`StringBuffer`(或者`StringBuilder`)。它们之间的主要区别在于可变性、性能和使用场景。 1. **不可变性**: `String`类是不可变的,这意味着一旦创建了一个`...

    string和StringBuffer的区别

    在Java编程语言中,`String`和`StringBuffer`都是用来表示和操作字符串的重要类,但它们在使用场景和性能上有显著的区别。了解这些差异对于编写高效、优化的代码至关重要。 首先,`String`类是不可变的。这意味着...

    String及StringBuffer和StringBuilder的区别

    String、StringBuffer 和 StringBuilder 是 Java 语言中三种不同类型的字符串处理方式,它们之间存在着明显的性能和线程安全性差异。 String String 类型是不可变的对象,每次对 String 对象进行改变时都会生成一...

Global site tag (gtag.js) - Google Analytics