Hàm so sánh từ giống nhau trong file trong 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:

  1. Nếu (string1 > string2) trả về 1.
  2. Nếu cả 2 bằng nhau i.e.(string1 == string2) trả về 0.
  3. Nếu (string1 < string2) trả về -1.
class GFG {
// This method compares two strings
// lexicographically without using
// library functions
public static int stringCompare(String str1, String str2) {
    int l1 = str1.length();
    int l2 = str2.length();
    int lmin = Math.min(l1, l2);
    for (int i = 0; i < lmin; i++) {
        int str1_ch = (int) str1.charAt(i);
        int str2_ch = (int) str2.charAt(i);
        if (str1_ch != str2_ch) {
            return str1_ch - str2_ch;
        }
    }
    if (l1 != l2) {
        return l1 - l2;
    }
    // If none of the above conditions is true,
    // it implies both the strings are equal
    else {
        return 0;
    }
}
// Driver function to test the above program
public static void main(String args[]) {
    String string1 = new String("Deft");
    String string2 = new String("Practice");
    String string3 = new String("Blog");
    String string4 = new String("Blog");
    System.out.println("Comparing " + string1 + " and " + string2
  • " : " + stringCompare(string1, string2));
        System.out.println("Comparing " + string3 + " and " + string4
  • " : " + stringCompare(string3, string4)); System.out.println("Comparing " + string1 + " and " + string4
  • " : " + stringCompare(string1, string4)); } }

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.

class GFG {
public static void main(String args[])
{
    String string1 = new String("Deft");
    String string2 = new String("Practice");
    String string3 = new String("Blog");
    String string4 = new String("Blog");
    String string5 = new String("Blog");
    System.out.println("Comparing " + string1 + " and " + string2
  • " : " + string1.equals(string2));
        System.out.println("Comparing " + string3 + " and " + string4
  • " : " + string3.equals(string4)); System.out.println("Comparing " + string4 + " and " + string5
  • " : " + string4.equals(string5)); System.out.println("Comparing " + string1 + " and " + string4
  • " : " + string1.equals(string4)); } }

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.

Equals() và EqualsIgnoreCase() trong java là hai phương thức dùng để so sánh chuỗi trong java.Tuy nhiên giữa hai phương thức này có sự khác biệt.Hãy cùng PhuTranIT tìm hiểu ở bài viết này nhé.

Ý nghĩa sự giống nhau giữa phương thức Equals() và EqualsIgnoreCase()

– Phương thức Equals() và EqualsIgnoreCase() là hai phương thức dùng để so sánh chuỗi trong java.

– Cả hai phương thức đều trả về kết quả là false nếu hai chuỗi đó không giống nhau và ngược lại trả về true nếu hai chuỗi đó giống nhau.

Khác nhau giữa Equals() và EqualsIgnoreCase()

– Phương thức Equals() dùng để so sánh chuỗi phân biệt chữ hoa thường.

– Ngược lại với Equals() phương thức EqualsIgnoreCase() dùng để so sánh chuỗi không phân biệt chữ hoa thường.

Để bạn đọc dễ hình dung mời xem ví dụ dưới đây :

package action; public class Demo { public static void main(String[] args) {

String str1 = "itphutran";    
String str2 = "ITphutran";  
System.out.println(str1.equals(str2)); // false  
System.out.println(str1.equalsIgnoreCase(str2)); // true  
} } Với ví dụ trên,trường hợp 1 sẽ trả về kết quả bằng false tuy cả hai chuỗi đều giống nhau nhưng ký tự khác nhau về chữ hoa và chữ thường,nên rõ ràng hai chuỗi này khác nhau.Trường hợp 2 sẽ bằng true khi sử dụng phương thức EqualsIgnoreCase() thì sẽ không phân biệt chữ hoa thường.

Xem thêm các bài viết :

  1. CharAt() trong Java
  2. Substring() trong Java

Xin chào! Tôi là Phú Trần.Kiến thức nền tảng và tư duy tốt về hướng đối tượng. Không ràng buộc ở ngôn ngữ mà căn bản ở giải thuật và tư duy con người. Lập trình JAVA/PHP.