tôi đang làm việc trên chương trình java cơ bản và tôi đã tìm thấy điều thú vị mà tôi đang chia sẻ với bạn. foo() cho đầu ra (s == s1) = false và thanh cho (s == s1) = true.Tại sao tôi nhận được kết quả khác khi so sánh chuỗi sau khi sử dụng nối khác nhau trong Java?
Tôi muốn biết tại sao điều này xảy ra.
public class StringTest
{
public static void main(String[] args){
foo();
bar();
}
public static void foo(){
String s = "str4";
String s1 = "str" + s.length();
System.out.println("(s==s1) = " + (s1==s));
}
public static void bar(){
String s = "str4";
String s1 = "str" + "4";
System.out.println("(s==s1) = " + (s1==s));
}
}
nếu bạn đang cố gắng so sánh các giá trị Chuỗi, bạn nên thực hiện ['equals'] (http: // downlo ad.oracle.com/javase/6/docs/api/java/lang/String.html#equals(java.lang.Object)) – asgs
Lưu ý: Thẻ HTML không hoạt động ở đây để định dạng mã. – Jesper
Tôi tự hỏi làm thế nào con người lỗi ra có liên quan đến vấn đề này ...;) – Nix