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:
- Vezměte řetězce jako vstupy od uživatele.
- Zkontrolujte délku řetězců. Pokud délky nejsou stejné , vraťte False tj. nejedná se o řetězce přesmyček.
- Pokud jsou délky stejné , převeďte řetězce na malá písmena a poté je převeďte na pole dvou znaků.
- Seřaďte znaky obou polí.
- 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.