Merkkijonojen yhdistäminen

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!