Avatar billede ozman Nybegynder
14. november 2003 - 16:39 Der er 8 kommentarer og
1 løsning

Tælle vokaler

Jeg sidder og roder med et program der skal kunne undersøge et input, og tælle hvormange vokaler den består af.
Jeg har PT gang i noget charAt(), men kan ikke bruge "==" eller .equals til at undersøge om det næste bogstav er en vokal eller ej...
Er der nogen der kan hjælpe??
Avatar billede arne_v Ekspert
14. november 2003 - 16:46 #1
Prøv med:

String s = "abcdef";
int nvocal = 0;
for(int i = 0; i < s.length(); i++) {
  if("aeiouyæøå".indexOf(s.charAt(i)) >= 0) {
      nvocal++;
  }
}
Avatar billede solom Nybegynder
14. november 2003 - 16:48 #2
Du skal huske at chars sckrives som 'a'
så det bliver noget med
dinStreng.charAt(x) == 'a'
Avatar billede ozman Nybegynder
14. november 2003 - 17:00 #3
hmm det virker ikke helt... Jeg skal jo tælle vokalerne. Desuden skal jeg tælle hvormange af hver enkelt vokal der er:-) Se hvad jeg har

for (int i=0;i<input.length();i++)
{
if("a".indexOf(input.charAt(i)))
vokalA++;
else if ("e".indexOf(input.charAt(i)))
vokalE++;

osv....
Avatar billede ozman Nybegynder
14. november 2003 - 17:14 #4
Kanon nu virker det! Tak Solom...
Avatar billede arne_v Ekspert
14. november 2003 - 17:52 #5
Du spurgte om hvordan man tæller hvor mange vokaler der er. Det svarede
jeg på.

Hvis du også skal tælle hvormange der er af de enkelte vokaler, så
er det en anden sag.

Jeg ville nok lave det som:

String s = "abcdef";
int nvocal = 0;
int n_a = 0;
int n_e = 0;
int n_i = 0;
...
for(int i = 0; i < s.length(); i++) {
  switch(s.charAt(i)) {
      case 'a':
          n_a++;
          nvocal++;
          break;
      case 'e':
          n_e++;
          nvocal++;
          break;
      case 'i':
          n_i++;
          nvocal++;
          break;
...
      default:
          // nothing
  }
}
Avatar billede solom Nybegynder
14. november 2003 - 18:11 #6
husk at der er forskel på må og store bogstaver

switch(s.charAt(i)) {
      case 'a', 'A':
          n_a++;
          nvocal++;
          break;
....
Avatar billede arne_v Ekspert
14. november 2003 - 18:23 #7
case 'a':
    case 'A':
          n_a++;
          nvocal++;
          break;
Avatar billede jakoba Nybegynder
14. november 2003 - 19:26 #8
class TelleVokaler {

public static void main( String[] args ) {

    String s = "abcdef";
    String vokal = "aAeEiIoOuUyYæÆøØåÅ"

    int[] nvocal = new int[9];
    for (int i=0; i<nvocal.length; i++) nvocal[i] = 0;

    for(int i = 0; i < s.length(); i++) {
        char ch = s.charAt(i);
        int nr = vokal.indexOf(s.charAt(i));
        if ( nr >= 0 ) {
            nvocal[nr/2]++;
        }
    }

    for (int i=0; i<nvocal.length; i++) {
        System.out.println( "der er " +nvocal[i] +" forekomster af vokalen '" +vokal.charAt(2*i+1) +"'." );
    }
} //endmain

} //endclass TelleVokaler
Avatar billede ozman Nybegynder
15. november 2003 - 09:06 #9
--> Arne v: Ja jeg udtrygte mig måske ikke rigtigt, men du fik nu aligevel point;-)
Der er åbenbart mange måder at gøre det på. Her er den løsning jeg endte op med..kan godt være at det ikke er den optimale, men den virker:-)

for (int i=0;i<input.length();i++)
{

if(input.charAt(i)=='a')
vokalA++;

else if (input.charAt(i)=='e')
vokalE++;

else if (input.charAt(i)=='i')
vokalI++;

else if (input.charAt(i)=='o')
vokalO++;

osv..
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