Šajā piemērā mēs pārbaudīsim, vai divas virknes ir anagrammas vai nav Java.
Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:
- Java virkne
- Java masīvi
Divas virknes tiek uzskatītas par anagrammu, ja mēs varam izveidot vienu virkni, sakārtojot citas virknes rakstzīmes. Piemēram, Race and Care . Šeit mēs varam izveidot Race, sakārtojot Care rakstzīmes.
1. piemērs: Java programma, lai pārbaudītu, vai divas virknes ir anagrammas
import java.util.Arrays; class Main ( public static void main(String() args) ( String str1 = "java"; String str2 = "vaaj"; // check if length is same if(str1.length() == str2.length()) ( // convert strings to char array char() charArray1 = str1.toCharArray(); char() charArray2 = str2.toCharArray(); // sort the char array Arrays.sort(charArray1); Arrays.sort(charArray2); // if sorted char arrays are same // then the string is anagram boolean result = Arrays.equals(charArray1, charArray2); if(result) ( System.out.println(str1 + " and " + str2 + " are anagram."); ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) ) )
Rezultāts
Java un Vaaj ir anagramma.
Java valodā mums ir divas virknes ar nosaukumu str1 un str2. Šeit mēs pārbaudām, vai str1 un str2 ir anagrammas.
Šeit,
- str1.toCharArray () - pārveido virkni par char masīvu
- Arrays.sort () - sašķiro abus char masīvus
- Arrays.equal () - pārbauda, vai sakārtotais char masīvs ir vienāds
Ja sakārtotie masīvi ir vienādi, virknes ir anagrammas.
Piezīme . Šeit piemērs ir reģistrjutīgs. Tas ir, Java un Java nav anagrammas. Tas ir tāpēc, ka Arrays.sort()
salīdzina divas rakstzīmes ar ASCII vērtību. J un j ASCII vērtība ir atšķirīga.
2. piemērs: Paņemiet no lietotājiem virkņu ievades un pārbaudiet, vai virknes ir anagrammas
import java.util.Arrays; import java.util.Scanner; class Main ( public static void main(String() args) ( // create an object of Scanner class Scanner input = new Scanner(System.in); // take input from users System.out.print("Enter first String: "); String str1 = input.nextLine(); System.out.print("Enter second String: "); String str2 = input.nextLine(); // check if length is same if(str1.length() == str2.length()) ( // convert strings to char array char() charArray1 = str1.toCharArray(); char() charArray2 = str2.toCharArray(); // sort the char array Arrays.sort(charArray1); Arrays.sort(charArray2); // if sorted char arrays are same // then the string is anagram boolean result = Arrays.equals(charArray1, charArray2); if(result) ( System.out.println(str1 + " and " + str2 + " are anagram."); ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) ) else ( System.out.println(str1 + " and " + str2 + " are not anagram."); ) input.close(); ) )
Rezultāts
Ievadiet pirmo virkni: Race Ievadiet otro virkni: Care Race un Care ir anagramma.
Iepriekš minētajā piemērā mēs izmantojām skenera klasi, lai ņemtu ievadi no lietotāja. Šeit mēs pārbaudījām, vai lietotāju nodrošinātās virknes ir anagrammas.