Come determinare il numero totale di occorrenze di ogni lettera dell'alfabeto nel testo in Java

March 9

Come determinare il numero totale di occorrenze di ogni lettera dell'alfabeto nel testo in Java


Contare il numero di occorrenze di ogni lettera alfabetica all'interno di una stringa di testo è un compito che si rivela essere più complessa di quanto ci si potrebbe aspettare. Tuttavia, il processo non è necessariamente difficile. Come con qualsiasi attività di programmazione, è necessario abbattere in piccoli passi, concentrandosi su ognuno a turno. Ci sono vari modi per contare le occorrenze di carattere in una stringa, ma l'approccio più semplice è quello di sfruttare il fatto che i personaggi sono variabili di tipo primitivo con valori numerici.

istruzione

1 Crea il tuo stringa di testo. Se non si dispone già di una stringa nel programma, utilizzare il seguente codice per creare uno:

String subject = "Qui ci sono alcuni personaggi disposti in una stringa";

Creare un array di interi di mantenere un contatore per ogni lettera dell'alfabeto:

int [] lettere = new int [26];

Istanziare gli elementi dell'array, impostando ogni uno a zero iniziale:

for (int l = 0; l <letters.length; l ++)
{Lettere [l] = 0; }

2 Creare un ciclo per scorrere i caratteri nella stringa. Utilizzare il seguente codice per scorrere la corda, la memorizzazione di ogni carattere come un valore intero:

for (int c = 0; c <subject.length (); c ++) {
int charNum = subject.charAt (c);
// Ulteriori elaborazioni qui
}

Questo ciclo itera una volta per ogni lettera della stringa. Ogni volta che il corpo del ciclo viene eseguito, esso memorizza il carattere corrente come un tipo intero primitivo.

3 Effettuare un test condizionale sul personaggio per assicurarsi che si tratta di una lettera. Aggiungere il seguente test all'interno del ciclo:

if ((charNum> = 'A' && charNum <= 'Z') || (charNum> = 'a' && charNum <= 'z')) {
// Ulteriori elaborazioni qui
}

Questo codice svolge due coppie di test. I primi test coppia che il personaggio è tra la maiuscola "A" e personaggi "Z". Il secondo test coppia che il personaggio è tra le versioni minuscole. Se una di queste coppie di test restituisce un valore vero, il contenuto della dichiarazione condizionale esegue; se il carattere non è una lettera, l'intera prova restituisce false.

4 Effettuare un test condizionale per verificare la presenza di caratteri minuscoli. Il vostro programma può trattare le versioni maiuscole e minuscole di personaggi nello stesso modo, ma hanno diversi valori numerici. Aggiungere il seguente test all'interno del if:

if (charNum> = 'a' && charNum <= (char) 'z') charNum- = 32;

Questo codice indica al programma di utilizzare gli stessi valori numerici per i caratteri minuscoli come per le versioni maiuscole, sottraendo la differenza tra loro. Incrementare il contatore elemento array per il carattere corrente nel seguente modo:

lettere [charNum-'A '] ++;

Questo codice indica Java per aggiungere uno al contatore array per il carattere corrente, con la lettera A in posizione zero e Z nella posizione 25. Sottraendo il valore della lettera maiuscola "A" dà il codice nella posizione corretta.

5 Metti alla prova le variabili contatore. Aggiungere il seguente ciclo dopo il ciclo personaggio, l'emissione dei valori ad ogni elemento contatore:

for (int i = 0; i <letters.length; i ++)
{System.out.println ((char) (i + 'A') + "" + lettere [i]); }

Si dovrebbe vedere ogni lettera dell'alfabeto scritte a fianco il suo contatore all'interno della stringa.

Consigli e avvertenze

  • Pensate a variabili di tipo carattere primitivo e valori in Java come simili ai numeri.
  • Se si dispone di una lunga serie nel programma, il ciclo avrà bisogno di iterare più volte.