So sánh chuỗi không phân biệt hoa thường java năm 2024
String là một chuỗi các ký tự trong Java, nó là các imutable object nghĩa là chúng ta sẽ không thể thay đổi sau khi khởi tạo. Để so sánh 2 chuỗi trong Java chúng ta có các cách sau Tự định nghĩaĐây là phương án hay nếu bạn là người mới bắt đầu học lập trình cũng như ngôn ngữ Java. Cách so sánh được mô tả như sau:
Output Comparing Deft and Practice : -12 Comparing Blog and Blog : 0 Comparing Deft and Blog : 2 Sử dụng String.equals()Hàm String.equals() được sử dụng để so sánh bằng 2 string với nhau. Nếu nội dung của 2 chuỗi giống nhau thì nó sẽ trả về TRUE ngược lại FALSE.
Output Comparing Deft and Practice : false Comparing Blog and Blog : true Comparing Blog and Blog : true Comparing Deft and Blog : false Sử dụng String.equalsIgnoreCase()Hàm String.equalsIgnoreCase() được sử dụng để so sánh bằng 2 string với nhau, nó khác với String.equalsIgnoreCase() là nó không phân biệt chữ hoa thường. Trong bài này mình sẽ trình bày đến các bạn các cách so sánh chuỗi đúng trong Java, từ cách phổ biến hay được dùng nhiều nhất. Ở cuối bài mình cũng giải thích tại sao không dùng toán tử == trong so sánh chuỗi với Java. Lựa chọn 1: So sánh chuỗi trong Java với phương thức: equals Phần lớn mình sử dụng khoảng 95% phương thức equals của lớp String. if (string1.equals(string2)) Phương thức equals nhìn vào 2 chuỗi, nếu từng ký tự trong chuỗi đó giống nhau thì 2 chuỗi đó giống nhau. Nhìn vào ví dụ sau, 2 chuỗi sẽ không bằng nhau vì từng ký tự trong chuỗi không bằng nhau (Hàm equals sẽ trả về false). Bạn chú ý ký tự in hoa và in thường là khác nhau nhé. String string1 = "Sinh Vien CNTT"; String string2 = "sinh vien cntt"; if (string1.equals(string2)) { // Dòng này sẽ không được in ra vì hai chuỗi không bằng nhau System.out.println("Hai chuỗi bằng nhau.") } Nhưng khi từng ký tự trong hai chuỗi giống nhau thì hàm equals sẽ trả về kết quả true nghĩa là hai chuỗi giống nhau, bạn xem ví dụ sau: String string1 = "Sinh Vien CNTT"; String string2 = "Sinh Vien CNTT"; if (string1.equals(string2)) { // Dòng này sẽ được in ra vì hai chuỗi bằng nhau System.out.println("Hai chuỗi bằng nhau."); } Lựa chọn 2: So sánh chuỗi trong Java với phương thức: equalsIgnoreCase Trong một số trường hợp bạn muốn việc kiểm tra hai chuỗi không kiểm tra ký tự là in hoa hay in thường thì dùng hàm equalsIgnoreCase của lớp String như sau: String string1 = "Sinh Vien CNTT"; String string2 = "sinh vien cntt"; if (string1.equalsIgnoreCase(string2)) { // Hai chuỗi bằng nhau vì ký tự in hoa bằng ký tự thường // Dòng này sẽ được in ra vì hai chuỗi bằng nhau System.out.println("Hai chuỗi bằng nhau."); } Lựa chọn 3: So sánh chuỗi trong Java với phương thức: compareTo Ngoài 2 cách trên còn có thể dùng hàm compareTo của lớp String, tuy nhiên cách này ít phổ biến. Nếu hai chuỗi giống nhau hàm compareTo sẽ trả về 0. Cách này cũng phân biệt chữ in hoa và thường. |