Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java ตรวจสอบ Anagram (คำที่จัดเรียงตัวอักษรซ้ำได้)


ในบทความนี้ เราจะเรียนรู้วิธีตรวจสอบว่า สตริงสองตัวเป็น Anagram กันหรือไม่ Anagram คือคำหรือวลีที่เกิดจากการจัดเรียงตัวอักษรของคำอื่นใหม่ โดยใช้ตัวอักษรเดิมครบถ้วน จำนวนครั้งเท่าเดิม

ตัวอย่าง: "Race" และ "Care" เป็น Anagram กัน เพราะทั้งคู่มีตัวอักษร r, a, c, e ครบถ้วน

ตัวอย่าง Input และ Output

Input:

Enter the first string : Race
Enter the second string : Care

Output:

The strings race and care are anagram.

อัลกอริธึม

ขั้นตอนที่ 1 - เริ่มต้น
ขั้นตอนที่ 2 - ประกาศตัวแปรสตริง 2 ตัว my_string_1, my_string_2
ขั้นตอนที่ 3 - อ่านค่าจากผู้ใช้ หรือกำหนดค่าเริ่มต้น
ขั้นตอนที่ 4 - แปลงทั้งสองสตริงเป็นตัวเล็กด้วย toLowerCase()
ขั้นตอนที่ 5 - ตรวจสอบความยาว ถ้าไม่เท่ากัน = ไม่ใช่ Anagram
ขั้นตอนที่ 6 - แปลงเป็น char array แล้วเรียงลำดับ (sort)
ขั้นตอนที่ 7 - ใช้ Arrays.equals() เปรียบเทียบ ถ้าเท่ากัน = Anagram
ขั้นตอนที่ 8 - แสดงผลลัพธ์
ขั้นตอนที่ 9 - หยุด

ตัวอย่างที่ 1: รับค่าจากผู้ใช้

import java.util.Scanner;
import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        System.out.println("Required packages have been imported");
        String my_string_1, my_string_2;
        Scanner my_scanner = new Scanner(System.in);
        System.out.println("A reader object has been defined");
        System.out.print("Enter the first string : ");
        my_string_1 = my_scanner.nextLine();
        System.out.print("Enter the second string : ");
        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("The strings " + my_string_1 + " and " + my_string_2 + " are anagram.");
            } else {
                System.out.println("The strings " + my_string_1 + " and " + my_string_2 + " are not anagram.");
            }
        } else {
            System.out.println("The strings " + my_string_1 + " and " + my_string_2 + " are not anagram.");
        }
    }
}

Output

Required packages have been imported
A reader object has been defined
Enter the first string : Race
Enter the second string : Care
The strings race and care are anagram.

ตัวอย่างที่ 2: กำหนดค่าไว้ล่วงหน้า

import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        System.out.println("Required packages have been imported");
        String my_string_1, my_string_2;
        my_string_1 = "Race";
        my_string_2 = "Care";
        System.out.println("The two strings are defined as " + my_string_1 + " and " + 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("The strings " + my_string_1 + " and " + my_string_2 + " are anagram.");
            } else {
                System.out.println("The strings " + my_string_1 + " and " + my_string_2 + " are not anagram.");
            }
        } else {
            System.out.println("The strings " + my_string_1 + " and " + my_string_2 + " are not anagram.");
        }
    }
}

Output

Required packages have been imported
The two strings are defined as Race and Care
The strings race and care are anagram.