„Java“ programa, skirta patikrinti, ar dvi eilutės yra anagramos

Šiame pavyzdyje patikrinsime, ar dvi eilutės yra „Java“ anagramos, ar ne.

Norėdami suprasti šį pavyzdį, turite žinoti šias Java programavimo temas:

  • „Java“ eilutė
  • „Java“ masyvai

Sakoma, kad dvi stygos yra anagrama, jei mes galime suformuoti vieną eilutę išdėstydami kitos eilutės simbolius. Pavyzdžiui, „ Race and Care“ . Čia mes galime suformuoti „Race“ išdėstydami „Care“ personažus.

1 pavyzdys: „Java“ programa, skirta patikrinti, ar dvi eilutės yra anagramos

 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."); ) ) )

Rezultatas

 Java ir Vaaj yra anagrama.

„Java“ turime dvi eilutes, pavadintas str1 ir str2. Čia mes tikriname, ar str1 ir str2 yra anagramos.

Čia

  • str1.toCharArray () - konvertuoja eilutę į char masyvą
  • Masyvai.rūšiuoti () - rūšiuoja abu simbolių masyvus
  • Arrays.equal () - patikrina, ar išrūšiuotas char masyvas yra lygus

Jei išrūšiuoti masyvai yra lygūs, eilutės yra anagramos.

Pastaba : čia pavyzdys skiriamas nuo didžiųjų ir mažųjų raidžių. Tai yra, „Java“ ir „Java“ nėra anagramos. Taip yra todėl, kad Arrays.sort()du simboliai lyginami su ASCII reikšme. J ir j ASCII reikšmė skiriasi.

2 pavyzdys: paimkite eilučių įvestis iš vartotojų ir patikrinkite, ar eilutės yra anagramos

 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(); ) )

Rezultatas

 Įveskite pirmąją eilutę: Race Įveskite antrąją eilutę: „Care Race“ ir „Care“ yra anagrama.

Ankstesniame pavyzdyje mes naudojome „Scanner“ klasę, kad gautume įvestį iš vartotojo. Čia mes patikrinome, ar vartotojų pateiktos eilutės yra anagramos.

Įdomios straipsniai...