Hàm so sánh chuoi trong java năm 2024

so với() được sử dụng để so sánh hai chuỗi theo từ điển. Mỗi ký tự của cả hai chuỗi đều được chuyển đổi thành giá trị Unicode. Tuy nhiên, nếu cả hai chuỗi bằng nhau thì phương thức này trả về 0, nếu không nó chỉ cho kết quả giá trị âm hoặc dương.

Phương thức so sánh chuỗi Java() được định nghĩa trong giao diện java.lang.Comparable

Cú pháp: Cách viết phương thức so sánh() trong Java:

public int compareTo(String str)

Đầu vào tham số:

str – Hàm so sánh() trong Java chỉ chấp nhận một kiểu dữ liệu Chuỗi đầu vào.

Trả về phương thức:

Phương thức Java CompareTo() này trả về một kiểu dữ liệu int dựa trên sự so sánh từ điển giữa hai chuỗi.

  • trả về < 0 thì Chuỗi gọi phương thức sẽ được ưu tiên theo từ điển
  • trả về == 0 thì hai chuỗi tương đương về mặt từ điển
  • trả về > 0 thì tham số được truyền cho phương thức Java CompareTo() sẽ được ưu tiên về mặt từ điển.

Phương thức so sánh chuỗi JavaTo() Ví dụ:

so sánh() Ví dụ Java 1:

public class Sample_String {

public static void main(String[] args) {
    String str_Sample = "a";
    System.out.println("Compare To 'a' b is : " + str_Sample.compareTo("b"));
    str_Sample = "b";
    System.out.println("Compare To 'b' a is : " + str_Sample.compareTo("a"));
    str_Sample = "b";
    System.out.println("Compare To 'b' b is : " + str_Sample.compareTo("b"));
}
}

Sản lượng mong đợi

Compare To 'a' b is : -1 Compare To 'b' a is : 1 Compare To 'b' b is : 0

Ở đây,

  • Ký tự a đứng trước b theo thứ tự bảng chữ cái. Do đó đầu ra là -1
  • Ký tự b đứng sau a theo thứ tự bảng chữ cái. Do đó đầu ra là 1
  • Ký tự b tương đương, do đó đầu ra là 0.

Bạn có thể sử dụng phương thức Sử dụng “compareToIgnoreCase” trong trường hợp bạn không muốn kết quả phân biệt chữ hoa chữ thường. Hãy cùng tìm hiểu với Ví dụ Java CompareTo().

so sánh() Ví dụ Java 2:

public class Sample_String {

public static void main(String[] args) {
    //Compare to a String
    String str_Sample = "RockStar";
    System.out.println("Compare To 'ROCKSTAR': " + str_Sample.compareTo("rockstar"));
    //Compare to - Ignore case
    System.out.println("Compare To 'ROCKSTAR' - Case Ignored: " + str_Sample.compareToIgnoreCase("ROCKSTAR"));
}
}

Sản lượng mong đợi

Compare To 'ROCKSTAR': -32 Compare To 'ROCKSTAR' - Case Ignored: 0

Khi nào nên sử dụng phương thức so sánh() trong Java?

Phương thức so sánh chuỗi JavaTo() được sử dụng để thực hiện sắp xếp tự nhiên trên chuỗi. Sắp xếp tự nhiên có nghĩa là thứ tự sắp xếp áp dụng trên đối tượng, ví dụ: thứ tự từ vựng cho Chuỗi, thứ tự số cho Sắp xếp số nguyên, v.v.

Thứ tự từ vựng không gì khác ngoài thứ tự bảng chữ cái. Phương thức Java CompareTo() thực hiện so sánh tuần tự các chữ cái trong chuỗi có cùng vị trí.

Trong phương pháp này, nếu chuỗi đầu tiên luôn cao hơn về mặt từ điển so với chuỗi thứ hai thì nó sẽ trả về một số dương.

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.