java字符串比较总结,java字符串,java中有几种方法可以
分享于 点击 15698 次 点评:15
java字符串比较总结,java字符串,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引用的是同一内存地址的字符串值。
用户点评