Slik finner du ut det totale antall forekomster av hver bokstav i alfabetet i Tekst i Java

Slik finner du ut det totale antall forekomster av hver bokstav i alfabetet i Tekst i Java


Telle antall forekomster av hver alfabetisk bokstav i en tekststreng er en oppgave som viser seg å være mer komplisert enn man kunne forvente. Imidlertid er fremgangsmåten ikke nødvendigvis vanskelig. Som med alle programmerings oppgave, må du bryte det ned i mindre trinn, med fokus på dem etter tur. Det finnes ulike måter å telle karakter forekomster i en streng, men den enkleste måten er å utnytte det faktum at tegnene er primitive typen variabler med tallverdier.

Bruksanvisning

1 Lag din tekststreng. Hvis du ikke allerede har en streng i programmet, kan du bruke følgende kode for å opprette en:

String Emne = "Her er noen tegn ordnet i en streng";

Opprett et heltall array å holde en teller for hver bokstav i alfabetet:

int [] bokstaver = new int [26];

Instantiate dine array elementer, sette hver og en til null i første omgang:

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

2 Lag en løkke for å iterere gjennom tegnene i strengen. Bruk følgende kode for å sløyfe gjennom strengen, lagring hvert tegn som et heltall:

for (int c = 0; c <subject.length (), c ++) {
int charNum = subject.charAt (c);
// Videre behandling her
}

Denne sløyfen gjentas én gang for hver bokstav i strengen. Hver gang sløyfen legeme utføres, lagrer det antall tegn som en primitiv typen heltall.

3 Gjennomføre en betingelsestest på karakteren for å sørge for at det er et brev. Legg til følgende test inni sløyfe:

if ((charNum> = 'A' && charNum <= 'Z') || (charNum> = 'a' && charNum <= 'z')) {
// Videre behandling her
}

Denne koden utfører to par av tester. Det første paret tester som tegnet er mellom det øvre tilfellet "A" og "Z" tegn. Det andre paret tester at karakteren er mellom små bokstaver versjoner. Hvis en av disse par av test returnerer en sann verdi, blir innholdet av den betingede uttalelse utfører; hvis tegnet ikke er en bokstav, returnerer hele testen falsk.

4 Gjennomføre en betingelsestest for å se etter små bokstaver. Programmet kan behandle store og små versjoner av tegnene på samme måte, men de har forskjellige tallverdier. Legg til følgende test inni hvis setningen:

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

Denne koden instruerer programmet til å bruke de samme tallverdier for de små bokstaver som for store bokstaver versjoner, ved å trekke forskjellen mellom dem. Øke den gruppeelementutbyttende telleren for antall tegn som følger:

bokstaver [charNum-'a '] ++;

Denne koden instruerer Java for å legge en til matrisen telleren for den aktuelle karakter, med bokstaven A i posisjon null og Z i posisjon 25. Ved å trekke verdien av det øvre hus bokstaven "A" gir koden riktig posisjon.

5 Test dine benke variabler. Legg til følgende løkke etter din karakter loop, sender ut verdiene på hver teller element stilling:

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

Du skal se hver bokstav i alfabetet skrevet sammen med sin teller i strengen.

Hint

  • Tenk på primitive typen karakter variabler og verdier i Java som ligner på tall.
  • Hvis du har en lang streng i programmet, vil løkken må reagere mange ganger.