返回顶部

收藏

java字符串比较总结

更多

java中有几种方法可以做字符串比较,这对于入门者来说是很容易混淆的。

package cn.outofmemory.examples;

public class Main {

    public static void main(String[] args) {

        String s1 = new String("abc");
        String s2 = new String("abc");

        if (s1 == s2) {
            System.out.println("s1 == s2");
        }

        if (s1.equals(s2)) {
            System.out.println("s1.equals(s2)");
        }

        if (s1.compareTo(s2) == 0) {
            System.out.println("s1.compareTo(s2) == 0");
        }
    }
}

以上代码输出:

s1.equals(s2)
s1.compareTo(s2) == 0

第一个条件s1 == s2是不成立的,在java中字符串双等号表示引用相当,只有两个变量引用的是同一地址时,双等于号才会返回true。

而equals和compareTo比较的是字符串变量的值。

  String s1 = "abc";
  String s2 = "abc";

  if (s1 == s2) {
      System.out.println("s1 == s2");
  }

猜猜看上面的代码会输出什么呢? 这样s1和s2是相等的,这是因为java虚拟机会对字符串做内置,这样就会导致s1和s2引用的是同一内存地址的字符串值。

标签:java,字符串,基础

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. root 发表 2015-04-26 02:40:02 Java 基础:认识&理解关键字 native 实战篇
  2. 技术与人文 发表 2015-10-24 13:45:29 Java中把一个字节编码成16进制字符串的原理
  3. 博主 发表 2013-11-10 00:00:00 合并字符串中重复出现的字符(java实现)
  4. Terry Zhang 发表 2014-05-03 06:47:05 [集合框架] Deque 接口
  5. 博主 发表 2015-12-29 07:29:15 java 基础
  6. 博主 发表 2013-11-10 00:00:00 检测字符串中各个字符出现的次数(java实现)
  7. Terry Zhang 发表 2014-04-22 03:30:42 [正则] 数量词
  8. Terry Zhang 发表 2014-05-09 15:21:58 Java 中的访问修饰符
  9. ticmy 发表 2012-11-08 12:42:26 对象实例化的顺序
  10. sulong 发表 2010-11-19 06:50:23 最快的计算子字符串出现次数程序
  11. Terry Zhang 发表 2014-04-22 16:22:45 [正则] 捕获组
  12. 博主 发表 2016-07-06 12:39:29 掌握Java: 基础篇