Java >> Java tutoriál >  >> Tag >> String

Java program pro kontrolu, zda jsou dva řetězce anagram nebo ne

Java program pro kontrolu, zda jsou dva řetězce anagram nebo ne :

Řetězec se nazývá anagram jiného řetězce, pokud jsou délky řetězců stejné a jeden řetězec lze vytvořit přeskupením znaků druhého řetězce. V tomto příspěvku napíšeme Java program, který vezme dva řetězce jako vstupy od uživatele a zjistí, zda jsou to anagramy nebo ne.

Například závod a dlaň jsou anagramové řetězce. Protože oba řetězce mají stejnou sadu znaků a oba mají stejnou délku.

Algoritmus, který se má následovat:

V tomto příkladu budeme postupovat podle níže uvedeného algoritmu:

  1. Vezměte řetězce jako vstupy od uživatele.
  2. Zkontrolujte délku řetězců. Pokud délky nejsou stejné , vraťte False tj. nejedná se o řetězce přesmyček.
  3. Pokud jsou délky stejné , převeďte řetězce na malá písmena a poté je převeďte na pole dvou znaků.
  4. Seřaďte znaky obou polí.
  5. Porovnejte pole. Pokud jsou oba stejné, pak jsou řetězce anagram . Jinak to nejsou anagramy.

Program Java:

Pojďme si zapsat kompletní program:

import java.util.Arrays;
import java.util.Scanner;

class Main {

    private static boolean isAnagram(String str1, String str2) {
        if (str1.length() != str2.length())
            return false;

        char[] str1Arr = str1.toLowerCase().toCharArray();
        char[] str2Arr = str2.toLowerCase().toCharArray();

        Arrays.sort(str1Arr);
        Arrays.sort(str2Arr);

        return Arrays.equals(str1Arr, str2Arr);
    }

    public static void main(String[] args) {
        String str1, str2;
        Scanner sc = new Scanner(System.in);

        System.out.println("Enter the first string: ");
        str1 = sc.nextLine();

        System.out.println("Enter the second string: ");
        str2 = sc.nextLine();

        if (isAnagram(str1, str2)) {
            System.out.println("These are anagram.");
        } else {
            System.out.println("These are not anagram.");
        }
    }
}

Tady,

  • jeAnagram metoda se používá ke kontrole, zda jsou dva řetězce anagramové nebo ne. Tato metoda bere jako parametry dva řetězce a vrací boolean hodnotu.

    • Pokud nejsou délky řetězců stejné, vrátí hodnotu false .
    • Převádí řetězce na malá písmena a převádí je na pole znaků.
    • Pomocí Arrays.sort metoda, třídí obsah polí.
    • Pole.rovná se se používá ke kontrole, zda jsou obě pole znaků stejná nebo ne. Pokud jsou oba stejné, vrátí true , jinak vrátí false .

Pokud spustíte výše uvedený program, poskytne výstup jako níže:

Enter the first string: 
save
Enter the second string: 
vase
These are anagram.

Enter the first string: 
save
Enter the second string: 
saave
These are not anagram.

Enter the first string: 
save
Enter the second string: 
news
These are not anagram.


Java Tag