Avatar billede renebmadsen Nybegynder
10. oktober 2006 - 18:29 Der er 2 kommentarer og
1 løsning

skal tælle store og små bogstaver

Jeg skal tælle hvor mange små og store bogstaver der er og hvor mange blanke felter der er. dette er hvad jeg har nu
public void count1()
        {
            int små = 0, store = 0, blanke = 0;
           
            for(int j = 0; j < tekst.length(); j++)
            {
                if(tekst.charAt(j) == ' ')
                    blanke++;
                else if(Character.isLowerCase(j))
                små++;
                else
                store++;
Avatar billede jakoba Nybegynder
10. oktober 2006 - 18:42 #1
ligesom der er en isLowerCase metode er der 1 anden metoder i char: isLetter
de skal med.

men du skriver
    else if(Character.isLowerCase(j))
og det er forkert, for j er jo dit index ind i den streng, det skal være det bogstav j peger på.

                if(tekst.charAt(j) == ' ')
                    blanke++;
                else if (Character.isLetter(tekst.charAt(j))) {
                    if(Character.isLowerCase(tekst.charAt(j)))
                        små++;
                    else
                        store++;
                } else {
                    // noget helt tredie der ikke skal tælles.
                    // fx tal, komma, punktum, osv
                }
Avatar billede kalp Novice
10. oktober 2006 - 18:42 #2
du skal nok også tjekke på isUpperCase.. (går ud fra metoden findes)
for du kan ikke garantere at hvis det ikke er lowercase eller mellemrum at det ikke er et andet tegn.. og det kan ikke være uppercase;o)
Avatar billede danand Nybegynder
22. oktober 2006 - 21:17 #3
Hej René
En mulig måde at gøre det kunne være at tjekke et bogstav(Charachter) ad gangen og udnytte funktionerne i Javas Charachter-bibliotek.
Jeg har strikket en funktion sammen som printer det du spørger om ud fra en streng jeg har kaldt "checkStr".
Vær dog opmærksom på at blanke tegn også kan hentyde til tabulator eller linjeskift-tegn, udvid evt. så den også tjekker dette.


    public void printCase(String checkStr)
    {
        int numbBlanks = 0;
        int numbLow = 0;
        int numbCaps = 0;
       
        for(int i=0; i < checkStr.length() ; i++)
        {
          char letter = checkStr.charAt(i);
         
          if(letter == " ")
          {
                numbBlanks++;
          }
          else if(Character.isUpperCase(letter))
          {
                numbCaps++;
          }
          else if(Character.isLowerCase(letter))
          {
                numbLow++;
          }
         
        }
       
        System.out.println("UpperCase:" + numbCaps);
        System.out.println("LowerCase:" + numbLow);
        System.out.println("Blanks:" + numbBlanks);
       
        return;
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester