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

Chương Trình Java Kiểm Tra Hai Chuỗi Có Phải Anagram


Trong bài viết này, chúng ta sẽ tìm hiểu cách kiểm tra hai chuỗi có phải là anagram (đảo từ) hay không. Anagram là từ hoặc cụm từ được hình thành bằng cách sắp xếp lại các chữ cái của một từ khác.

Người dùng nhập hai chuỗi. Chúng ta cần đếm số lần xuất hiện của mỗi chữ cái (từ 'a' đến 'z') trong cả hai chuỗi và so sánh các số đếm tương ứng. Tần suất của một chữ cái trong chuỗi là số lần nó xuất hiện. Nếu hai chuỗi có cùng số lượng tần suất của từng chữ cái, chúng ta có thể nói đó là anagram.

Dưới đây là minh họa:

Đầu vào

Giả sử đầu vào của chúng ta là:

Nhập chuỗi thứ nhất: Race
Nhập chuỗi thứ hai: Care

Đầu ra

Đầu ra mong muốn sẽ là:

Hai chuỗi race và care là anagram.

Thuật Toán

Bước 1 - BẮT ĐẦU
Bước 2 - Khai báo hai chuỗi my_string_1, my_string_2
Bước 3 - Đọc giá trị từ người dùng hoặc định nghĩa giá trị
Bước 4 - Chuyển cả hai chuỗi thành chữ thường bằng hàm toLowerCase()
Bước 5 - Kiểm tra độ dài hai chuỗi, nếu khác nhau thì không phải anagram
Bước 6 - Gán chuỗi vào mảng ký tự và sắp xếp chúng
Bước 7 - Sử dụng hàm equals() để kiểm tra xem chúng có bằng nhau không. Nếu có, là anagram, ngược lại không phải
Bước 8 - Hiển thị kết quả
Bước 9 - DỪNG

Ví Dụ 1

Ở đây, đầu vào được nhập bởi người dùng dựa trên nhắc nhở. Bạn có thể thử ví dụ này trực tiếp trong công cụ coding ground của chúng tôi.

import java.util.Scanner;
import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        System.out.println("Các gói cần thiết đã được nhập");
        String my_string_1, my_string_2;
        Scanner my_scanner = new Scanner(System.in);
        System.out.println("Đối tượng đọc đã được định nghĩa");
        System.out.print("Nhập chuỗi thứ nhất: ");
        my_string_1 = my_scanner.nextLine();
        System.out.print("Nhập chuỗi thứ hai: ");
        my_string_2 = my_scanner.nextLine();
        my_string_1 = my_string_1.toLowerCase();
        my_string_2 = my_string_2.toLowerCase();
        if (my_string_1.length() == my_string_2.length()) {
            char[] my_array_1 = my_string_1.toCharArray();
            char[] my_array_2 = my_string_2.toCharArray();
            Arrays.sort(my_array_1);
            Arrays.sort(my_array_2);
            boolean my_result = Arrays.equals(my_array_1, my_array_2);
            if (my_result) {
                System.out.println("Hai chuỗi " + my_string_1 + " và " + my_string_2 + " là anagram.");
            } else {
                System.out.println("Hai chuỗi " + my_string_1 + " và " + my_string_2 + " không phải anagram.");
            }
        } else {
            System.out.println("Hai chuỗi " + my_string_1 + " và " + my_string_2 + " không phải anagram.");
        }
    }
}

Đầu Ra

Các gói cần thiết đã được nhập
Đối tượng đọc đã được định nghĩa
Nhập chuỗi thứ nhất: Race
Nhập chuỗi thứ hai: Care
Hai chuỗi race và care là anagram.

Ví Dụ 2

Ở đây, chuỗi đã được định nghĩa trước, và giá trị của chúng được truy cập và hiển thị trên bảng điều khiển.

import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        System.out.println("Các gói cần thiết đã được nhập");
        String my_string_1, my_string_2;
        my_string_1 = "Race";
        my_string_2 = "Care";
        System.out.println("Hai chuỗi được định nghĩa là " + my_string_1 + " và " + my_string_2);
        my_string_1 = my_string_1.toLowerCase();
        my_string_2 = my_string_2.toLowerCase();
        if (my_string_1.length() == my_string_2.length()) {
            char[] my_array_1 = my_string_1.toCharArray();
            char[] my_array_2 = my_string_2.toCharArray();
            Arrays.sort(my_array_1);
            Arrays.sort(my_array_2);
            boolean my_result = Arrays.equals(my_array_1, my_array_2);
            if (my_result) {
                System.out.println("Hai chuỗi " + my_string_1 + " và " + my_string_2 + " là anagram.");
            } else {
                System.out.println("Hai chuỗi " + my_string_1 + " và " + my_string_2 + " không phải anagram.");
            }
        } else {
            System.out.println("Hai chuỗi " + my_string_1 + " và " + my_string_2 + " không phải anagram.");
        }
    }
}

Đầu Ra

Các gói cần thiết đã được nhập
Hai chuỗi được định nghĩa là Race và Care
Hai chuỗi race và care là anagram.