I Java är strängar objekt av en speciell klass som heter "String";
inte en primitiv datatyp och inte heller en array.
Tecknen i en sträng är av "char"-typ, dvs Unicode-tecken.
Objekt av typ String är konstanta—man kan inte ändra i en sträng.
(Det finns en klass StringBuffer som tillåter ändringar.)
Genom att skriva
"En sträng"
skapas en sträng.
Strängar slås ihop (konkateneras) med operatorn +
Om a och b är strängar så returnerar uttrycket
a + b
en ny sträng som är konkateneringen av a och b.
Så "fem" + "tio" är "femtio", men "5" + "10" är "510".
Om det ena argumentet till operationen + är ett
String-objekt, så omvandlas det andra till en sträng.
int x = 42;
System.out.println("Shoesize: " + x);
Utskrift: Shoesize: 42
Notera att två strängar kan ha samma innehåll utan att vara identiska.
Operatorn == testar om två referenser är till samma objekt.
Om du vill testa om två strängar s1 och s2 har samma innehåll måste du
skriva:
s1.equals(s2)
String a = "java.1.4.2";
String b = new String("java.1.4.2");
//Tvinga kompilatorn att skapa ett nytt objekt!
System.out.println("a==b : " + (a==b));
System.out.println("a.equals(b) : "
+ (a.equals(b)));
ger utskriften
a==b : false a.equals(b) : true
Notera att kompilatorn ibland undviker att skapa nya strängar genom
att återanvända befintliga. Till exempel: Om strängen "java.1.4.2"
förekommer på olika platser i programmet är det troligt att samma
sträng-objekt används för samtliga. Därför kan en jämförelse med
== ibland fungera när man inte väntar det!