Etusivu | [Valikko] | Harjoitukset | Lukeminen näppäimistöltä | Merkkijonojen yhdistäminen | Ruudulle tulostus |
Olet oppinut, että String-tyyppiseeen muuttujaan voidaan laittaa pitkiäkin merkkijonoja, vaikka kokonaisen kirjan tekstin. Esimerkiksi seuraavassa sijoitetaan muuttujaan teksti lause "ohjelmointi" :
String teksti = "Ohjelmointi";
Tämä oli tuttua. Uusi asia on, että voit nyt lisätä muuttujassa olevaan sanaan toisen sanan perään seuraavasti:
String teksti = "Ohjelmointi"; teksti = teksti + " on kivaa!!!"; // muuttujan teksti sisältö on nyt: Ohjelmointi on kivaa !!!
Esimerkissä sijoituslauseessa sijoitettiin muuttujaan teksti se arvo, joka saadaan, kun muuttujassa jo olevaan arvoon ("Ohjelmointi") lisätään toinen arvo (" on kivaa!!!"). Ihmettelet nyt, että + - merkkihän on laskutoimitus ja sen pitäisi toimia vain lukujen kanssa! Vastaus on se, että Java-kääntäjä on aika viisas: se arvaa, että koska muuttuja teksti on String-tyyppinen, merkki + tarkoittaa nyt sitä, että haluat liittää yhteen (eli katenoida) kaksi merkkijonoa. Sehän on ainoa mahdollisuus, koska eihän kahta merkkijonoa nyt yhteenkään voi laskea!
Ota kuitenkin huomioon, että + on ainoa operaatio, joka toimii tällä tavoin. Seuraavassa esimerkissä laitetaan muuttujaan lause1 muuttujien ekaLause ja tokaLause yhdistelmä ja muuttujaan lause2 kahden suoraan lainausmerkein annetun merkkijonon yhdistelmä.
String lause1, ekaLause, tokaLause; ekaLause = "Antti "; tokaLause = "juoksee"; lause1 = ekaLause + tokaLause; // lause1: Antti juoksee lause2 = "Teemu " + "kävelee"; // lause2: Teemu kävelee
Jos lisäät merkkijonoon + merkintää käyttäen numeron, liitetään se normaalisti merkkijonon perään. Tällöin numeron tyyppi tietenkin muuttuu. Tietenkin syntyneen pitemmän merkkijonon perään voidaan lisätä vielä uusia merkkijonoja.
String vanhaKettu = "kettu on jo " + 10 + " vuotta vanha!"; //muuttujassa vanhaKettu nyt : kettu on jo 10 vuotta vanha!