English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Guida di base Java

Controllo dei flussi Java

Array Java

Java orientata agli oggetti (I)

Java orientata agli oggetti (II)

Java orientata agli oggetti (III)

Gestione delle eccezioni Java

Lista Java

Queue (coda) Java

Map di Java

Set di Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Il programma Java verifica se due stringhe sono anagrammi (stessa sequenza di lettere diversa)

Completa guida di esempio Java

In questo esempio, esamineremo se due stringhe in Java sono anagrammi (lettere disposte in modo diverso), una nuova parola o frase formata cambiando la posizione (ordine) delle lettere di una parola o di una frase.

Se possiamo formare una stringa重组altrui permutando i caratteri di un'altra stringa, possiamo dire che due stringhe sono anagrammi. Ad esempio,Race e CareEcco, possiamo riorganizzare le lettere di Care per formare la parola Race.

Esempio 1: Programma Java per controllare se due stringhe sono anagrammi

import java.util.Arrays;
class Main {
  public static void main(String[] args) {
    String str1 = "Java";
    String str2 = "Vaaj";
    //Controlla se le lunghezze sono le stesse
    if(str1.length() == str2.length()) {
      //Converti la stringa in un array di char
      char[] charArray1 = str1.toCharArray();
      char[] charArray2 = str2.toCharArray();
      //Ordina l'array di char
      Arrays.sort(charArray1);
      Arrays.sort(charArray2);
      //Se gli array di char ordinati sono uguali
      //Allora la stringa è un anagramma
      boolean result = Arrays.equals(charArray1, charArray2);
      if(result) {
        System.out.println(str1 + " e " + str2 + " sono anagrammi.");
      }
      else {
        System.out.println(str1 + " e " + str2 + " non sono anagrammi.");
      }
    }
  }
}

Risultato di output

Java e Vaaj sono anagrammi

In Java, abbiamo due stringhe chiamate str1 e str2. Qui, controlliamo se str1 e str2 sono letteralmente le stesse ma in ordine diverso.

Ecco

  • str1.toCharArray() - Converti la stringa in un array di char

  • Arrays.sort() - Ordina due array di char

  • Arrays.equal() - Controlla se gli array di char ordinati sono uguali

Se gli array di char ordinati sono uguali, allora la stringa è un anagramma.

Esempio 2: Ottieni l'input della stringa dell'utente e verifica se la stringa è un anagramma

import java.util.Arrays;
import java.util.Scanner;
class Main {
  public static void main(String[] args) {
    //Crea un oggetto della classe Scanner
    Scanner input = new Scanner(System.in);
    //Accetta l'input dell'utente
    System.out.print("Inserisci la prima stringa: ");
    String str1 = input.nextLine();
    System.out.print("Inserisci la seconda stringa: ");
    String str2 = input.nextLine();
    //Controlla se le lunghezze sono le stesse
    if(str1.length() == str2.length()) {
      //Converti la stringa in un array di char
      char[] charArray1 = str1.toCharArray();
      char[] charArray2 = str2.toCharArray();
      //Ordina l'array di char
      Arrays.sort(charArray1);
      Arrays.sort(charArray2);
      //Se gli array di char ordinati sono uguali
      //Allora la stringa è un anagramma
      boolean result = Arrays.equals(charArray1, charArray2);
      if(result) {
        System.out.println(str1 + " e " + str2 + " sono anagrammi.");
      }
      else {
        System.out.println(str1 + " e " + str2 + " non sono anagrammi.");
      }
    }
    input.close();
  }
}

Risultato di output

Inserisci la prima stringa: Race
Inserisci la seconda stringa: Care
Race e Care sono anagrammi

Nell'esempio sopra, abbiamo utilizzatoScannerLa classe riceve l'input dall'utente. Qui abbiamo verificato se la stringa fornita dall'utente è un anagramma.

Completa guida di esempio Java