Eli, kysymys on seuraavanlaisesta:
Yritän tässä harjoitella alkeita ja seuraavaksi olisi tarkoitus duunata jonkinlainen sanakirja. Ongelmana onkin nyt sanojen korvaaminen toisilla. Eli, jos minulla olisi vaikka seuraavanlainen koodi:
Scanner skanner = new Scanner (System.in);
System.out.print("Word?");
String word = skanner.nextLine();
word = word.replaceAll("koira", "dog");
niin ohjelma muuttaa esimerkiksi tekstin "minulla on susikoira" > "minulla on susidog".
Mikä on taikasana javassa sille, että pystyisin korvaamaan tietyt _kokonaiset_ sanat niin, ettei sanojen osia edes tutkittaisi?
Toinen ongelmani liittyy juurikin noihin sanoihin. Onko javassa mahdollista luoda tälle > word = word.replaceAll("koira", "dog"); jonkinlaista taulukkovastinetta? eli yhdessä taulukossa olisi isompi läjä sanoja/tietyt korvaavat sanat jokaiselle?
Yritän tässä harjoitella alkeita ja seuraavaksi olisi tarkoitus duunata jonkinlainen sanakirja. Ongelmana onkin nyt sanojen korvaaminen toisilla. Eli, jos minulla olisi vaikka seuraavanlainen koodi:
Scanner skanner = new Scanner (System.in);
System.out.print("Word?");
String word = skanner.nextLine();
word = word.replaceAll("koira", "dog");
niin ohjelma muuttaa esimerkiksi tekstin "minulla on susikoira" > "minulla on susidog".
Mikä on taikasana javassa sille, että pystyisin korvaamaan tietyt _kokonaiset_ sanat niin, ettei sanojen osia edes tutkittaisi?
Toinen ongelmani liittyy juurikin noihin sanoihin. Onko javassa mahdollista luoda tälle > word = word.replaceAll("koira", "dog"); jonkinlaista taulukkovastinetta? eli yhdessä taulukossa olisi isompi läjä sanoja/tietyt korvaavat sanat jokaiselle?
Vastaukset 1
Vanhimmat
"Mikä on taikasana javassa sille, että pystyisin korvaamaan tietyt _kokonaiset_ sanat niin, ettei sanojen osia edes tutkittaisi?"
Lisää sekä etsittävän ja tilalle vaihdettavan merkkijonon eteen ja perään välilyönti. Jotta homma toimisi myös sanan esiintyessä rivin alussa tai lopussa, pitää sinun lisätä rivin alkuun ja loppuunkin välilyönti.
"Toinen ongelmani liittyy juurikin noihin sanoihin. Onko javassa mahdollista luoda tälle > word = word.replaceAll("koira", "dog"); jonkinlaista taulukkovastinetta? eli yhdessä taulukossa olisi isompi läjä sanoja/tietyt korvaavat sanat jokaiselle?"
Joudut varmaan kirjoittamaan sellaisen itse. For-loopilla toteutettuna et tarvitse kovin montaa riviä, mutta tuollainen toteutus on sitten ihan hemmetin hidas jos sanoja on vähänkään enemmän. Kannattaisi tuo algoritmi miettiä ihan kokonaan uusiksi, eikä välttämättä edes käyttää replaceAll:ia.