"Hej, Amigo!"

"Men, Bilaabo, du har redan sagt hej."

"Verkligen? Tja, jag gillar fortfarande att börja varje lektion med den frasen."

"Idag ska vi studera String-klassen på djupet."

"Men jag vet redan allt om det. Jag vet till och med att String-klassen är oföränderlig."

"String-klassen har 46 metoder. Hur många av dem känner du?"

"Inte mer än tio. Egentligen, förmodligen ungefär 5 max."

"Lyssna då."

"Javas skapare märkte att de flesta strängar i program inte är avsedda att modifieras, men ibland ändras de ändå. Det är väldigt irriterande när du skapar en sträng, sparar något viktigt i den, skickar det till någon annans metod, och det ändras . För att detta inte skulle hända bestämde de sig för att skapa både föränderliga och oföränderliga strängar."

"Klassen String är för oföränderliga strängar, och klassen StringBuilder är för föränderliga. Objekt av dessa klasser konverteras enkelt till den andra typen. I de flesta fall behöver Java-utvecklare helt enkelt String, vilket bevisar att Javas skapare hade rätt."

"Så om jag behöver en String använder jag String-klassen. Och om jag behöver en föränderlig String, då använder jag StringBuilder- klassen ?"

"Ja. Det finns faktiskt en annan klass som heter StringBuffer. Det är en kopia av StringBuilder, förutom att alla dess metoder är deklarerade som synkroniserade , så att objektet kan nås från olika trådar i programmet."

"Och hur är det med det här exemplet? Byts inte strängen här?"

String s = "cat";
s = s + "-" + s;

"Nej. Det finns två String-objekt här: «cat» och «cat-cat». Det andra skapas med det första, men det första objektet ändras inte. I verkligheten är saker mycket mer intressanta här. Här är koden kompilatorn genererar när den kompilerar ditt exempel:"

String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();

"Så, StringBuilder används nästan alltid för att skapa nya strängar, men ibland gör kompilatorn helt enkelt allt arbete åt dig. Men din version är enklare, tycker du inte?"

"Ja, det är fantastiskt att Java har en så avancerad kompilator."

"Tja, låt oss nu gå igenom String-klassens metoder:"

1) Hur hittar jag en strängs längd?

" Längdmetoden returnerar en strängs längd (antalet tecken i den)."

Metod(er) Exempel
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) Hur får jag en karaktär från en sträng?

" CharAt -metoden returnerar ett tecken från en sträng med dess index. Teckenindexen börjar på 0.

Metod(er) Exempel
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) Hur får jag karaktärer från en sträng?

Hur får jag karaktärer från en sträng?

Metod(er) Exempel
char[]toCharArray ()
String s = "Good news, everyone!";
for(char c: s.toCharArray())
{
System.out.println(c);
}

4) Hur jämför jag Strings?

"Equals-metoden kontrollerar om Strings matchar, och equalsIgnoreCase -metoden kontrollerar om Strings matchar när skiftläge ignoreras.

Metod(er) Metod(er)
boolean equals(Object o)
String s = "cat";
boolean test1 = s.equals("cat");//true
boolean test2 = s.equals("Cat");//false
boolean test3 = s.equals("c"+"a"+"t");//true
boolean equalsIgnoreCase(String str)
String s = "cat";
boolean test1 = s.equalsIgnoreCase("cat");//true
boolean test2 = s.equalsIgnoreCase("Cat");//true
boolean test3 = s.equalsIgnoreCase("cAT");//true

5) Hur gör jag alla bokstäver i en sträng med versaler eller gemener?

" ToUpperCase -metoden returnerar en kopia av strängen med alla versaler."

" ToLowerCase -metoden returnerar en kopia av strängen med alla små bokstäver."

Metod(er) Exempel
String toUpperCase()
String s = " Good news, everyone!  ";
s = s.toUpperCase();

Resultat:

s == "GOOD NEWS, EVERYONE!";
String toLowerCase()
String s = "Good news, everyone!";
s = s.toLowerCase();

Resultat:

s == "good news, everyone!";

6) Hur tar jag bort mellanslag i början och slutet av en sträng?

"Trimmetoden returnerar en kopia av en sträng utan blanksteg i början och slutet."

Metod(er) Exempel
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

Resultat:

s == "Good news, everyone!";