"Hallo Amigo!"

'Maar Bilaabo, je hebt al gedag gezegd.'

"Echt? Nou, ik vind het nog steeds leuk om elke les met die zin te beginnen."

"Vandaag gaan we de String-klasse grondig bestuderen."

"Maar ik weet er al alles van. Ik weet zelfs dat de klasse String onveranderlijk is."

"De klasse String heeft 46 methoden. Hoeveel ken jij?"

"Niet meer dan tien. Eigenlijk waarschijnlijk maximaal vijf."

"Luister dan."

"De makers van Java hebben gemerkt dat de meeste tekenreeksen in programma's niet bedoeld zijn om te worden gewijzigd, maar soms worden ze toch gewijzigd. Het is erg vervelend als je een tekenreeks maakt, er iets belangrijks in opslaat, het doorgeeft aan de methode van iemand anders en het wordt gewijzigd Om dit te voorkomen, besloten ze om zowel veranderlijke als onveranderlijke Strings te creëren."

"De String-klasse is voor onveranderlijke strings en de StringBuilder- klasse is voor veranderlijke. Objecten van deze klassen kunnen eenvoudig worden geconverteerd naar het andere type. In de meeste gevallen hebben Java-ontwikkelaars gewoon String nodig, wat bewijst dat de makers van Java gelijk hadden."

"Dus als ik een String nodig heb, gebruik ik de String-klasse. En als ik een veranderlijke String nodig heb, gebruik ik dan de StringBuilder- klasse?"

"Ja. Eigenlijk is er een andere klasse genaamd StringBuffer. Het is een kopie van StringBuilder, behalve dat alle methoden zijn gedeclareerd als synchroon , zodat het object toegankelijk is vanuit verschillende threads van het programma."

"En hoe zit het met dit voorbeeld? Wordt de string hier niet veranderd?"

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

"Nee. Er zijn hier twee String-objecten: «kat» en «kat-kat». Het tweede is gemaakt met behulp van het eerste, maar het eerste object verandert niet. In werkelijkheid zijn de dingen hier veel interessanter. Hier is de code de compiler genereert wanneer het uw voorbeeld compileert:"

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

"Dus StringBuilder wordt bijna altijd gebruikt om nieuwe strings te maken, maar soms doet de compiler gewoon al het werk voor je. Maar jouw versie is eenvoudiger, vind je niet?"

"Ja, het is geweldig dat Java zo'n geavanceerde compiler heeft."

"Nou, laten we nu de methoden van de klasse String doornemen:"

1) Hoe vind ik de lengte van een string?

"De lengtemethode retourneert de lengte van een tekenreeks (het aantal tekens erin)."

Methode(n) voorbeeld(en)
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) Hoe krijg ik een karakter uit een String?

"De charAt- methode retourneert een teken uit een tekenreeks op basis van zijn index. De tekenindexen beginnen bij 0.

Methode(n) voorbeeld(en)
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) Hoe krijg ik karakters uit een string?

Hoe krijg ik karakters uit een String?

Methode(n) voorbeeld(en)
char[]toCharArray ()
String s = "Good news, everyone!";
for(char c: s.toCharArray())
{
System.out.println(c);
}

4) Hoe vergelijk ik strings?

"De methode equals controleert of de tekenreeksen overeenkomen en de methode equalsIgnoreCase controleert of de tekenreeksen overeenkomen wanneer hoofdlettergebruik wordt genegeerd.

Methode(n) Methode(n)
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) Hoe maak ik alle letters in een string hoofdletters of kleine letters?

"De toUpperCase- methode retourneert een kopie van de tekenreeks met allemaal hoofdletters."

"De methode toLowerCase retourneert een kopie van de tekenreeks met allemaal kleine letters."

Methode(n) voorbeeld(en)
String toUpperCase()
String s = " Good news, everyone!  ";
s = s.toUpperCase();

Resultaat:

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

Resultaat:

s == "good news, everyone!";

6) Hoe verwijder ik spaties aan het begin en einde van een String?

"De trimmethode retourneert een kopie van een tekenreeks zonder witruimtetekens aan het begin en einde."

Methode(n) voorbeeld(en)
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

Resultaat:

s == "Good news, everyone!";