public class Test{
public static void main(String args[]){
String s1 = "ni"; String s2 = "hao";
String s3 = "ni";
System.out.println(s1==s3); //true
s1 = new String("ni");
s2 = new String("ni");
System.out.println(s1==s2); //false
System.out.println(s1.equals(s2)); //true
char[] c = {'n','i' ,'h','a','o'};
String s4 = new String(c);
String s5 = new String(c,2,3); //c就是那个char [] c 数组 2就是移位数,3就是取三个字符
System.out.println(s4);
System.out.println(s5);
}
}
输出:
true
false
true
nihao
hao
补充 :
==和equals方法有什么区别
Java程序中测试两个变量是否相等有两种方式,一种是利用==运算符,另一种是利用equals方法.
当使用==来判断两个变量是否相等时,如果2个变量是基本类型的变量,且都是数值型(不一定
要求数据类型严格形同),则只要两个变量的值相等,使用==判断就将返回true.
但对于两个引用类型的变量,必须它们指向同一个对象时,==判断才会返回true。下面程序示范
了使用==来判断两种类型变量是否相等的结果。
程序清单:codes/06/6-2/TestEquaijava
public class TestEqual {
public static void main(String[] args) {
int it = 65;
float f1 = 65.0f;
// 将输出出true
System.out.println("65和65.Of是否相等?" + (it == f1));
char ch = 'A';
// 将输出true
System.out.println("65和,A,是否相等?" + (it == ch));
String str1 = new String("hello");
String str2 = new String("hello");
// 将输 出false
System.out.println("strl和str2是否相等?" + (str1 == str2));
// 将输出true
System.out.println("strl是否equals str2?" + (str1.equals(str2)));
}
}
输出:
65和65.Of是否相等?true
65和,A,是否相等?true
strl和str2是否相等?false
strl是否equals str2?true