Java:
Merkkijonojen yhdistäminen
How to: (Miten:)
Java tarjoaa useita tapoja yhdistää merkkijonoja. Tässä muutama esimerkki:
// Käyttäen + operaattoria
String tervehdys = "Hei " + "maailma!";
System.out.println(tervehdys); // Tulostuu: Hei maailma!
// StringBuilderin avulla
StringBuilder sb = new StringBuilder("Hei ");
sb.append("maailma!");
System.out.println(sb.toString()); // Tulostuu: Hei maailma!
Kumpikin tapa tuottaa saman lopputuloksen, mutta niiden käyttö voi vaihdella tilanteen mukaan.
Deep Dive (Sukellus syvemmälle)
Konkatenoinnille on monta syytä, aivan kuten toteutustavallekin. Historiallisesti + -operaattoria on nähty usein, koska se on luettava ja helppo ymmärtää. Kuitenkin, jos yhdistetään monta merkkijonoa, StringBuilder
on tehokkaampi, koska se ei luo joka välissä uutta merkkijonoa vaan rakentaa lopullisen merkkijonon pala palalta.
Aiemmissa Java-versioissa, kuten Java 5:ssa, StringBuffer
oli suosittu, mutta se on synkronoitu ja siksi hitaampi kuin StringBuilder
. Java 8 toi String.join
-metodin, joka on käytännöllinen tietyissä tilanteissa.
Merkkijonojen yhdistäminen voi olla muistinkäytön kannalta kriittinen – jokainen merkkijonon yhdistäminen + -operaattorilla luo uuden merkkijono-olion, mikä voi johtaa muistin ylikuormitukseen suurissa sovelluksissa.
See Also (Katso myös)
- Oracle’s Java documentation on
StringBuilder
: https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html - Effective Java by Joshua Bloch, specifically the item about String concatenation for more in-depth performance discussions.
- Stack Overflow discussions about when to use +,
StringBuilder
, orStringBuffer
: https://stackoverflow.com