Java-program til at kontrollere, om to strenge er anagram

I dette eksempel vil vi kontrollere, om to strenge er anagram eller ikke i Java.

For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:

  • Java-streng
  • Java Arrays

To strenge siges at være anagram, hvis vi kan danne en streng ved at arrangere tegnene i en anden streng. For eksempel Race and Care . Her kan vi danne Race ved at arrangere karaktererne i Care.

Eksempel 1: Java-program til at kontrollere, om to strenge er anagrammer

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

Produktion

 Java og Vaaj er anagram.

I Java har vi to strenge med navnet str1 og str2. Her kontrollerer vi, om str1 og str2 er anagrammer.

Her,

  • str1.toCharArray () - konverterer strengen til en char-array
  • Arrays.sort () - sorterer begge char-arrays
  • Arrays.equal () - kontrollerer, om det sorterede char-array er ens

Hvis sorterede arrays er ens, er strengene anagram.

Bemærk : Her er eksemplet store og små bogstaver. Det vil sige, Java og java er ikke anagrammer. Det er fordi de Arrays.sort()sammenligner to tegn med ASCII-værdien. Og ASCII-værdien for J og j er forskellige.

Eksempel 2: Tag strenginput fra brugere og kontroller, om strengene er anagram

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

Produktion

 Indtast første streng: Race Indtast anden streng: Care Race og pleje er anagram.

I ovenstående eksempel har vi brugt Scanner-klassen til at tage input fra brugeren. Her kontrollerede vi, om strengene fra brugerne er anagram.

Interessante artikler...