Chúng ta có thể so sánh chuỗi trong Java dựa trên cơ sở nội dung và tham chiếu. Nó được sử dụng trong sự xác nhận bởi phương thức equal(), sắp xếp bởi phương thức compareTo(), so khớp tham chiếu bởi toán tử ==, …
Phương thức equals() so sánh nội dung ban đầu của chuỗi. Nó so sánh tính cân bằng của các giá trị chuỗi. Lớp String cung cấp hai phương thức:
Ví dụ 1
class Sosanhchuoi1{
public static void main(String args[]){
String s1="hoclaptrinh";
String s2="hoclaptrinh";
String s3=new String("hoclaptrinh");
String s4="hoclaptrinhteam";
System.out.println(s1.equals(s2));//true
System.out.println(s1.equals(s3));//true
System.out.println(s1.equals(s4));//false
}
}
Ví dụ 2
class Sosanhchuoi2{
public static void main(String args[]){
String s1="hoclaptrinh";
String s2="hoclaptrinh";
System.out.println(s1.equals(s2));//false
System.out.println(s1.equalsIgnoreCase(s3));//true
}
}
Toán tử == trong Java so sánh các tham chiếu chứ không phải so sánh các giá trị. Ví dụ:
class Sosanhchuoi3{
public static void main(String args[]){
String s1="hoclaptrinh";
String s2="hoclaptrinh";
String s3=new String("hoclaptrinh");
System.out.println(s1==s2);//true (boi vi ca hai cung tham chieu toi cung instance)
System.out.println(s1==s3);//false(boi vi s3 tham chieu toi instance duoc tao khong phai trong Pool)
}
}
Phương thức compateTo() so sánh các giá trị theo từ điển và trả về một giá trị nguyên miêu tả rằng nếu chuỗi đầu tiên là nhỏ hơn, bằng hoặc lớn hơn chuỗi thứ hai. Giả sử s1 và s2 là hai chuỗi. Nếu:
class Teststringcomparison4{
public static void main(String args[]){
String s1="hoclaptrinh";
String s2="hoclaptrinh";
String s3="Doan";
System.out.println(s1.compareTo(s2));//0
System.out.println(s1.compareTo(s3));//1(boi vi s1 > s3)
System.out.println(s3.compareTo(s1));//-1(boi vi s3 < s1 )
}
}
Hoclaptrinh.vn © 2017
From Coder With
Unpublished comment
Viết câu trả lời