Tellen van het aantal voorvallen van elke alfabetische letter binnen een tekenreeks is een taak die blijkt complexer dan je zou verwachten te zijn . Echter , het proces is niet altijd moeilijk. Zoals bij elke taak programmering , moet je het af te breken in kleinere stappen , gericht op een ieder op zijn beurt . Er zijn verschillende manieren om karakter gebeurtenissen te tellen in een reeks , maar de eenvoudigste benadering is dat tekens primitieve variabelen numerieke waarden exploiteren . Instructies 1 Maak uw tekenreeks . Als je niet al een string in je programma , gebruikt u de volgende code aan te maken : String subject = " Hier zijn een aantal personages die in een string" ; Maak een integer array om een teller te houden voor elke letter van het alfabet : int [ ] brieven = new int [ 26 ] ; instantiëren uw array -elementen , waarin ieder naar nul aanvankelijk : voor ( int l = 0 ; l < letters.length ; l + + ) { letters [ l ] = 0 ; } kopen van 2 Maak een lus te doorlopen van de personages in je string. Gebruik de volgende code voor het doorlussen van de string , het opslaan van elk teken als een integer waarde : voor ( int c = 0 ; c < subject.length ( ) ; c + + ) { int charNum = subject.charAt ( c ) ;//verdere verwerking hier } Deze lus herhaalt eenmaal voor elke letter in de string . Elke keer dat de lus lichaam uitvoert , slaat de huidige karakter als een primitief soort integer . 3 Voer een voorwaardelijke test op het karakter om ervoor te zorgen dat het een brief . Voeg de volgende test in je lus : if ( ( charNum > = ' A ' && charNum < = ' Z ' ) | | ( charNum > = ' a ' && charNum < = ' z ' ) ) { //verdere verwerking hier } Deze code voert twee paar testen . De eerste paar tests die het karakter tussen de hoofdletter " A " en " Z" tekens . Het tweede paar tests die het karakter is tussen de kleine letters versies . Als een van deze paren van de test geeft een werkelijke waarde , de inhoud van de voorwaardelijke instructie uitgevoerd ; . Als het karakter is niet een letter , de hele test geeft false 4 Voer een voorwaardelijke test om controleren op kleine letters . Het programma kan de hoofd-en kleine versies karakters op dezelfde wijze behandeld , maar ze hebben verschillende numerieke waarden . Voeg de volgende test in je if statement : if ( charNum > = ' a ' && charNum < = ( char ) 'z' ) charNum - = 32 ; Deze code instrueert het programma dezelfde numerieke waarden gebruiken voor de kleine letters als de hoofdletters versies , door het aftrekken van het verschil daartussen . Verhoog de array-element teller voor het huidige karakter als volgt : brieven [ charNum - ' A ' ] + + ; Deze code instrueert Java om een toe te voegen aan de array teller voor het huidige karakter met de letter A op positie nul en Z op positie 25 . Aftrekken van de waarde van de hoofdletter " A " geeft de code de juiste positie . 5 Test uw teller variabelen . Voeg de volgende lus na uw personage lus , uitvoeren van de waarden aan elk tellerelement positie : for (int i = 0 ; i < letters.length ; i + + ) { System.out.println ( ( char ) ( i + ' A ' ) + " " + brieven [ i ] ) ; . } Je moet elke letter van het alfabet naast zijn teller binnen de string schriftelijke zie < br >
|