Avatar billede kurran Nybegynder
30. september 2002 - 09:10 Der er 11 kommentarer og
1 løsning

palindrom

Hvordan undersøger man om et ord er et palindrom. Altså, om det staves ens forfra og bagfra.

Nogen der har en idé til et lille program der gør dette?
Avatar billede kurran Nybegynder
30. september 2002 - 09:19 #1
Glemte lige at sige, at det ikke skal være med stringbuffer
Avatar billede disky Nybegynder
30. september 2002 - 09:19 #2
Denne metode returnerer 'true' hvis det er et palindrom du kalder den med.


boolean testPalindrom(String input)
{
  StringBuffer temp=new StringBuffer(input);
  temp.reverse();
  if(input.equals(temp.toString()))
  {
    return true;
  }
  else
  {
    return false;
  }
}
Avatar billede disky Nybegynder
30. september 2002 - 09:20 #3
Og hvorfor ikke det ?

Man bruger altid Stringbuffer når man arbejder med String's der skal ændres.
Avatar billede kurran Nybegynder
30. september 2002 - 09:22 #4
Vores lærer siger, at det er for nemt. Derfor må vi ikke bruge stringbuffer.

Anywayz, tak for hjælpen
Avatar billede ladyhawke Novice
30. september 2002 - 09:24 #5
Hvorfor accepterer du et svar som ikke løser dit problem???
Avatar billede jakoba Nybegynder
30. september 2002 - 09:26 #6
boolean checkPalind( Srting str ) {
    int forfra = 0;
    int bagfra = str.length()-1;
    while ( forfra < bagfra ) {
        if ( str.charAt(forfra) != str.charAt(bagfra) ) return false;
        forfra++;
        bagfra--;
    }
    return true;
}; //end checkPalind

mvh JakobA
Avatar billede kurran Nybegynder
30. september 2002 - 09:30 #7
Til ladyhawke: Lad os kalde det forbigående blindhed. Var glad for at få et svar og læste ikke indholdet før jeg havde accepteret svaret.
Avatar billede ladyhawke Novice
30. september 2002 - 10:21 #8
OK, bare nysgerrig :o)
Avatar billede =maddog= Nybegynder
30. september 2002 - 11:30 #9
jeg vil også være med
boolean checkPal(String input) {
byte[] byteval = input.getBytes();
boolean retval = true;
for(int i=0;i<(byteval.length-i)&&retval;i++) { // break if we find one mismatch
  retval = (byteval[i]==byteval[byteval.length-i]);
}
return retval;
}

Eller noget lignende.
Avatar billede jakoba Nybegynder
30. september 2002 - 11:43 #10
boo hiss. første sammenligning giver out of bounds exception :-))
Avatar billede jakoba Nybegynder
30. september 2002 - 12:03 #11
men er et palindrom forresten ikke også ligeglad med store og små bogstaver.
og ligeglad med blanktegn.

boolean checkPalind( String str ) {
    str = str.toLowerCase();
    int forfra = 0;
    int bagfra = str.length()-1;
    while ( true ) {
        while ( forfra < bagfra && str.charAt(forfra) == ' ' ) forfra++;
        while ( forfra < bagfra && str.charAt(bagfra) == ' ' ) bagfra--;
        if ( forfra >= bagfra ) break;
        if ( str.charAt(forfra++) != str.charAt(bagfra--) ) return false;
    }
    return true;
}; //end checkPalind
Avatar billede =maddog= Nybegynder
30. september 2002 - 19:43 #12
UPS da osse. Pokkers. Glemte lige at trække 1 fra length.

boolean checkPal(String input) {
    byte[] byteval = input.toLowerCase().getBytes();
    boolean retval = true;
    for(int i=0;i<(byteval.length-i)&&retval;i++) { // break if we find one mismatch
        retval = (byteval[i]==byteval[byteval.length-i-1]);
    }
    return retval;
}
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