Kuinka etsin stringistä?

Uuppi

Haluaisin tietää kuinka voin etsiä stringistä tietyn kirjaimen ja niiden määrän.
esimerkki:
string = 'suomi24 keskustelu' ja tosta pitäis etsiä kaikki s-kirjaimet ja näyttää kuinka monta niitä löytyi.
miten tämä onnistuu?
Kiitos.

2

518

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Delphikoodaaja

      Parhaiten tuo onnistuu PosEx -funktiolla.

      Löytyy ainakin Delphi7:ssa StrUtils -unitista (tulee Delphi7:n mukana).

      Jos käytät jotain vielä vanhempaa Delphiä, jossa ei ole ko. funktiota, niin Professional ja Enterprise -versioissa tulee VCL:n lähdekoodi mukana; tällöin etsi Pos -funktion lähdekoodi, kopioi se nimelle PosEx ja muokkaa sitä niin, että sille voi antaa parametriksi mistä merkistä alkaen etsitään.

      Tosin: for (tai while) -silmukkahan tähänkin tarvitaan joka tapauksessa, ja kun vielä etsittävä on 1 merkki, niin yhtä hyvin kuin käyttää PosEx -funktiota, voit toki tehdä näinkin:

      for i := 1 to length(S) do
      if S[i] = 's' then begin
      // s- kirjain löydetty positiosta i
      end;

      Jos haluat kohdella isoa ja pientä s-kirjainta samanarvoisina, niin:

      for i := 1 to length(S) do
      if UpCase(S[i]) = 'S' then begin
      // iso tai pieni s- kirjain löydetty positiosta i
      end;

    • Vaikkapa näin

      Vaikkapa näin että
      Edit1 on tuo mistä etsitään ja Edit2 on se mitä
      etsitään. Label näyttää montako niitä oli.


      function MontakoMerkkijonoa(Mjono, etsittava:string):integer;
      var
      s,e:string;
      i,p:integer;
      begin
      s:= AnsiLowerCase(Mjono);
      e :=AnsiLowerCase(etsittava);
      i := 0;
      Repeat
      p :=ansipos(e,s) ;
      if p0 then
      begin
      delete(s,1,p 1);
      inc(i);
      end;
      until p=0;
      result := i;
      end;

      procedure TForm1.Button1Click(Sender: TObject);
      var
      j:integer;
      begin
      j := MontakoMerkkijonoa(Edit1.Text,Edit2.Text);
      Label1.Caption:= IntToStr(j);
      end;

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

    Luetuimmat keskustelut

    1. Tollokin tajuaa että Timo Vornanen

      oli joutunut äärimmäiseen tilanteeseen ampuessaa yhden laukauksen katuun. Ei poliisi tee tuollaista hetken mielijohteest
      Maailman menoa
      697
      6329
    2. Istuva kansanedustaja epäiltynä pahoinpitelystä ja ampuma-aserikoksesta

      Seiskan tietojen mukaan Timo Vornanen on epäiltynä pahoinpitelystä ja ampuma-aserikoksesta eikä kenellekään taatusti tul
      Maailman menoa
      527
      3749
    3. Timo Vornanen kilahti

      Mikähän sille kansanedustajalle polisiisi miehelle on noin pahasti mennyt hermot , että tulevaisuudensa pilasi totaalise
      Kotka
      188
      3611
    4. Pullonpalautusjärjestelmä muuttuu - paluu menneisyyteen

      EU suuressa viisaudessaan on päättänyt, että pulloja pitää kierrättää. Jos oikein ymmärsin, nykyisen järjestelmänmme ti
      Maailman menoa
      172
      2814
    5. Sininen farmari - Ford Focus- YFB-842 on poliisilta kadoksissa Kauhajärvellä

      https://alibi.fi/uutiset/poliisilta-poikkeuksellinen-vihjepyynto-autossa-oleva-henkilo-on-avuntarpeessa/?shared=29255-2d
      Lapua
      10
      2519
    6. 288
      2245
    7. Onko oikeudenmukaista? Yhdellä taholla yllättävä valta-asema Tähdet, tähdet -voittajan valinnassa!

      Näinpä, onko sinusta tämä oikein? Viime jaksossakin voittaja selvisi vain yhden äänen erolla ja tänä sunnuntaina ensimm
      Tv-sarjat
      24
      1603
    8. Persukansanedustaja Timo Vornanen ammuskellut Helsingissä

      Poliisi siviiliammatiltaan, luvallinen ase mukana baarissa tällä hemmetin valopääpersulla. Meni eduskunnasta suoraan baa
      Haapavesi
      110
      1502
    9. No kerros nyt nainen

      Kumpi mielestäsi oli se joka väärinkäsitti kaiken? Nyt voi olla jo rehellinen kun koko tilanne on jo lähes haihtunut.
      Ikävä
      100
      1439
    10. Nainen, mietit miten minä jaksan

      En voi hyvin. Nykyään elämäni on lähinnä selviytymistä tunnista ja päivästä toiseen. Usein tulee epävarma olo, että mite
      Ikävä
      89
      1220
    Aihe