码迷,mamicode.com
首页 > 其他好文 > 详细

比较StringBuffer字符串内容是否相等?

时间:2014-09-14 00:05:36      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   使用   java   ar   strong   for   

为什么会有这个问题呢?首先得看看String和StringBuffer的比较区别:

==只能比较两个字符串的内存地址是否一样,不能比较字符串内容;

String的equals方法因为重写了Object的equals方法,所以可以比较字符串的内容,而StringBuffer因为没重写equals方法,所以不行。

顺便提一句:String因为是final类型的,是不可变类,所以对于append等操作,是要重新new String的,而StringBuffer是可变类,不需要重新new StringBuffer,所以在字符串操作上性能非常好,而且好的不是一点点。可试试:

 1 public static void main(String[] args) {
 2         StringBuffer s1 = new StringBuffer();
 3         String s2 = new String();
 4         
 5         Date d = new Date();
 6         long a = d.getTime();
 7         for (int i = 0; i < 100000; i++) {
 8             s1.append(i);
 9         }
10         Date d2 = new Date();
11         long b = d2.getTime();
12         System.out.println(b-a);
13         
14         Date d3 = new Date();
15         a = d3.getTime();
16         for (int i = 0; i < 100000; i++) {
17             s2 = s2 + i;
18         }
19         Date d4 = new Date();
20         b = d4.getTime();
21         System.out.println(b-a);
22     }

 

 

 

那么如何比较StringBuffer字符串内容是否相等呢?

可以使用toString() 方法将StringBuffer的内容转换为String 字符串,再使用equals()方法比较。

 1 public class Main {
 2     public static void main(String[] args) {
 3         StringBuffer strb1 = new StringBuffer("Java");// 创建StringBuffer对象str1
 4         StringBuffer strb2 = new StringBuffer("Java");// 创建StringBuffer对象str2
 5         System.out.println("****不使用toString()方法****");
 6         if (strb1.equals(strb2)) {
 7             System.out.println("相等");
 8         } else {
 9             System.out.println("不相等");
10         }
11         System.out.println("****使用toString()方法****");
12         if (strb1.toString().equals(strb2.toString())) {
13             System.out.println("相等");
14         } else {
15             System.out.println("不相等");
16         }
17     }
18 }

 

比较StringBuffer字符串内容是否相等?

标签:style   blog   color   os   使用   java   ar   strong   for   

原文地址:http://www.cnblogs.com/x_wukong/p/3970525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!