Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java so sánh hai chuỗi thủ công

Trong bài viết này, chúng ta sẽ tìm hiểu cách so sánh hai chuỗi bằng cách tự triển khai logic so sánh (không dùng compareTo). So sánh có thể dùng toán tử == nhưng đây là so sánh tham chiếu. Chuỗi là dãy ký tự, trong Java được xử lý như đối tượng.

Ví dụ minh họa

Đầu vào:

Chuỗi 1: Java Program
Chuỗi 2: Java

Đầu ra mong muốn:

Kết quả so sánh: 8

Thuật toán

  1. Bắt đầu
  2. Khai báo hai chuỗi
  3. Tính độ dài, tìm độ dài nhỏ nhất
  4. Duyệt qua độ dài nhỏ nhất, so sánh từng ký tự (chuyển sang int)
  5. Nếu khác nhau, trả về chênh lệch
  6. Nếu hết vòng lặp mà chưa khác, trả về chênh lệch độ dài
  7. Hiển thị kết quả
  8. Kết thúc

Ví dụ 1: Xử lý trực tiếp trong main

public class CompareStrings {
    public static void main(String args[]) {
        String input_string_1 = new String("Java Program");
        System.out.println("Chuỗi 1: " + input_string_1);
        String input_string_2 = new String("Java");
        System.out.println("Chuỗi 2: " + input_string_2);
        int length_1 = input_string_1.length();
        int length_2 = input_string_2.length();
        int minimum_length = Math.min(length_1, length_2);
        int result = 0;
        for (int i = 0; i < minimum_length; i++) {
            int character_1 = (int) input_string_1.charAt(i);
            int character_2 = (int) input_string_2.charAt(i);
            if (character_1 != character_2) {
                result = character_1 - character_2;
                break;
            }
        }
        if (result == 0 && length_1 != length_2) {
            result = length_1 - length_2;
        }
        System.out.println("\nKết quả so sánh: " + result);
    }
}

Kết quả

Chuỗi 1: Java Program
Chuỗi 2: Java
Kết quả so sánh: 8

Ví dụ 2: Sử dụng phương thức tách biệt (OOP)

public class CompareStrings {
    public static int string_compare(String input_string_1, String input_string_2) {
        int length_1 = input_string_1.length();
        int length_2 = input_string_2.length();
        int minimum_length = Math.min(length_1, length_2);
        for (int i = 0; i < minimum_length; i++) {
            int character_1 = (int) input_string_1.charAt(i);
            int character_2 = (int) input_string_2.charAt(i);
            if (character_1 != character_2) {
                return character_1 - character_2;
            }
        }
        if (length_1 != length_2) {
            return length_1 - length_2;
        }
        return 0;
    }
    public static void main(String args[]) {
        String input_string_1 = new String("Java Program");
        System.out.println("Chuỗi 1: " + input_string_1);
        String input_string_2 = new String("Java");
        System.out.println("Chuỗi 2: " + input_string_2);
        System.out.println("\nKết quả so sánh: " + string_compare(input_string_1, input_string_2));
    }
}

Kết quả

Chuỗi 1: Java Program
Chuỗi 2: Java
Kết quả so sánh: 8