Contando il numero di occorrenze di ogni lettera alfabetica all'interno di una stringa di testo è un compito che risulta per essere più complessa di quanto ci si potrebbe aspettare. Tuttavia, il processo non è necessariamente difficile. Come con qualsiasi attività di programmazione, è necessario suddividerlo in piccoli passi, concentrandosi su ciascuno di essi a sua volta. Ci sono vari modi per contare le occorrenze di caratteri in una stringa, ma l'approccio più semplice è quello di sfruttare il fatto che i personaggi sono variabili di tipo primitivo con valori numerici.
Istruzioni
1
Creare la stringa di testo. Se non avete già una stringa nel programma, è possibile utilizzare il codice seguente per creare uno:
Oggetto stringa = "Qui ci sono alcuni personaggi disposti in una stringa";
Creare una matrice di interi per mantenere un contatore per ogni lettera dell'alfabeto:
int [] lettere = new int [26];
Creare un'istanza gli elementi di matrice, impostazione inizialmente ognuno a zero:
per (int l = 0; l < letters.length; l + +)
{lettere [l] = 0;}
2
Creare un ciclo per scorrere i caratteri nella stringa. Utilizzare il codice seguente per eseguire un ciclo attraverso la stringa, archiviare ogni carattere come valore integer:
per (int c = 0; c < subject.length(); c + +) {
int charNum = subject.charAt(c);
ulteriore elaborazione qui
}
Questo ciclo si ripete una volta per ogni lettera della stringa. Ogni volta che viene eseguito il corpo del ciclo, memorizza il carattere corrente come valore integer a tipo primitivo.
3
Eseguire un test condizionale il carattere per assicurarsi che si tratta di una lettera. Aggiungere il seguente test all'interno il ciclo:
Se ((charNum > = 'A' & & charNum < = 'Z') | | (charNum > = 'a' & & charNum < = 'z')) {
ulteriore elaborazione qui
}
Questo codice esegue due coppie di test. La prima coppia prove che il carattere è tra le lettere maiuscole "A" e "Z" caratteri. La seconda coppia prove che il carattere è tra le versioni di lettere minuscole. Se una di queste coppie di test restituisce un valore true, viene eseguito il contenuto dell'istruzione condizionale; Se il carattere non è una lettera, l'intero test restituisce falsi.
4
Eseguire un test condizionale per controllare i caratteri minuscoli. Il programma può trattare i superiore e minuscole versioni dei personaggi nello stesso modo, ma hanno diversi valori numerici. Aggiungere il seguente test all'interno il vostro se istruzione:
Se (charNum > = 'a' & & charNum < =(char)'z') charNum-= 32;
Questo codice indica al programma di utilizzare gli stessi valori numerici per i caratteri minuscoli per quanto riguarda le versioni di lettere maiuscole, sottraendo la differenza tra loro. Incrementa il contatore di elemento di matrice per il carattere corrente come segue:
lettere [charNum-'A '] + +;
Questo codice indica a Java per aggiungere uno per il contatore di matrice per il carattere corrente, con la lettera A nella posizione zero e Z in posizione 25. Sottraendo il valore della lettera maiuscola "A" dà il codice nella posizione corretta.
5
Verificare le variabili di contatore. Aggiungere il seguente ciclo dopo il ciclo di carattere, l'output i valori ad ogni posizione di elemento del contatore:
per (int i = 0; i < letters.length; i + +)
{System.out.println((char)(i+'A') + "" + letters[i]);}
Si dovrebbe vedere ogni lettera dell'alfabeto scritto a fianco il contatore all'interno della stringa.
Consigli & Avvertenze
- Pensare di tipo primitivo carattere variabili e valori in Java come simili ai numeri.
- Se avete una lunga stringa nel programma, il ciclo sarà necessario scorrere molte volte.