Miten haen alimerkkijonon kaikki esiintymät merkkijonosta yhdellä komennolla?
Esim:
merkkij="abcdefhabcdefghijabcdefghijklabcdefghijklmnoabcdefghijklmnopqrs"
Eli ylläolevasta pitäisi löytää kaikki "abc" ilmentymät ja saada niiden indeksi. Pitäisi päästä jatkamaan löydetyn alimerkkijonon(jos sellaista on) indeksistä eteenpäin.
Esim:
merkkij="abcdefhabcdefghijabcdefghijklabcdefghijklmnoabcdefghijklmnopqrs"
Eli ylläolevasta pitäisi löytää kaikki "abc" ilmentymät ja saada niiden indeksi. Pitäisi päästä jatkamaan löydetyn alimerkkijonon(jos sellaista on) indeksistä eteenpäin.
Vastaukset 2
Vanhimmat
while(merkkijono.indexOf('abc') > -1)
{
indeksi = merkkijono.indexOf('abc');
merkkijono = merkkijono.substring(indeksi);
//tee jotain jäljellä olevalle merkkijonolle
}
Pääsääntöisesti tekstihakuihin kannattaisi käyttää regular expressioneja. Ne ovat siihen tarkoitukseen suunniteltuja ja nopeudeltaan aivan eri luokkaa kuin mitkään while-silmukat (varsinkin jos haku on "käännetty" sen luonnin jälkeen). Niillä saa myös hyvin pienellä koodimäärällä käsiteltyä merkkijonoja hyvinkin paljon.