Neuvoa

Kirjoittaja

Miten tehdään funktio joka saa argumenttina StringBuffer-tyyppisen olion ja palauttaa olion joka on saatu poistamalla argumenttina saadusta oliosta kaikki duplikaatit eli kirjainten moniesiintymät. Pekka-sanasta tulee siis Peka.

6

645

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • if-else

      --- ALKAA ---

      public class Esimerkki {
         
         public static StringBuffer poistaDuplikaatit(StringBuffer jono) {
            int i = 0;
            
            while(i < jono.length())
               if (jono.indexOf("" jono.charAt(i)) < i)
                  jono.delete(i, i 1);
               else
                  i ;
            
            return jono;
         }
         
         public static void main (String[] args) {
            System.out.println(poistaDuplikaatit(new StringBuffer("Pekka")));
         }
      }

      --- LOPPUU ---


      --- ALKAA ---

      public class Esimerkki {
         
         public static String poistaDuplikaatit(StringBuffer jono) {
            String vastaus = "";
            
            for (char merkki : jono.toString().toCharArray())
               if (vastaus.indexOf(merkki) == -1)
                  vastaus = merkki;
            
            return vastaus;
         }
         
         public static void main (String[] args) {
            System.out.println(poistaDuplikaatit(new StringBuffer("Pekka")));
         }
      }

      --- LOPPUU ---

      ...

      • Kirjoittaja

        Miten tuo sama tehtäisiin jos sanan funktio paikalla on proseduuri?


      • fidel1
        Kirjoittaja kirjoitti:

        Miten tuo sama tehtäisiin jos sanan funktio paikalla on proseduuri?

        Javassa, niinkuin yleensäkin olio-pohjaisissa kielissä ei ole erikseen funktioita ja proseduureja, vaan pelkästään metodeita. Mutta jos verrataan vaikka Pascaliin, niin metodi, joka palauttaa jonkun tyypin tai olion vastaa Pascalin funktiota. Metodi, joka ei palauta mitään, siis sen paluuarvo on "void" vastaa Pascalin proseduuria.


      • mietinpä vaan
        fidel1 kirjoitti:

        Javassa, niinkuin yleensäkin olio-pohjaisissa kielissä ei ole erikseen funktioita ja proseduureja, vaan pelkästään metodeita. Mutta jos verrataan vaikka Pascaliin, niin metodi, joka palauttaa jonkun tyypin tai olion vastaa Pascalin funktiota. Metodi, joka ei palauta mitään, siis sen paluuarvo on "void" vastaa Pascalin proseduuria.

        Alkoi nyt kiinnostaa, että jos sellainen proseduuri pitäisi kirjoittaa, niin miten se käytännössä voitaisiin tehdä?


      • The Rat
        mietinpä vaan kirjoitti:

        Alkoi nyt kiinnostaa, että jos sellainen proseduuri pitäisi kirjoittaa, niin miten se käytännössä voitaisiin tehdä?

        Metodin paluuarvoksi void ja return -lauseke pois.

        Oliot kun kulkevat javassa referensseinä, näkyvät muutokset alkuperäisessä oliossa, ellei oliota mene vaihtamaan metodin sisällä...


      • fidel1
        The Rat kirjoitti:

        Metodin paluuarvoksi void ja return -lauseke pois.

        Oliot kun kulkevat javassa referensseinä, näkyvät muutokset alkuperäisessä oliossa, ellei oliota mene vaihtamaan metodin sisällä...

        Ylempänä olevassa koodiesimerkissä metodi "poistaDuplikaatit" vastaa funktiota ja metodi "main" vastaa proseduuria.

        Mutta, java-ohjelmoinnissa kannattaa unohtaa kokonaan kaikki funktiot ja proseduurit. Niitä ei käytetä, vaan kaikki on metodeita. Turha sekoittaa päätään turhaan.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa

      En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod
      Ikävä
      22
      5214
    2. Huomenta ihana

      Kauniskasvoinen ihanuus 😘 saan sut vielä
      Ikävä
      25
      4378
    3. Hei rakas...

      Miten on työpäivä sujunut? Rakastan sinua 💗
      Ikävä
      27
      2501
    4. Edelleen sitä on vaikea uskoa

      Että olisit oikeasti rakastunut muhun
      Ikävä
      34
      2264
    5. Toiveikas vai toivoton

      torstai? Ajatuksia?
      Ikävä
      37
      2008
    6. Vitsi mihin menit. Heti takasin.

      Mä näin sut tuu takasin! Oli kiire, niin en ehtiny sin perään!
      Ikävä
      15
      1918
    7. En ole koskaan kokenut

      Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka
      Ikävä
      19
      1607
    8. Mukavaa päivää

      Mun rakkauden kohteelle ❤️ toivottavasti olet onnellinen
      Ikävä
      12
      1531
    9. Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...

      Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons
      Suomalaiset julkkikset
      21
      1267
    10. Kerranki asiat oikein

      Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa
      Haapavesi
      10
      1184
    Aihe