"Hei, Amigo!"

"Men, Bilaabo, du har allerede sagt hei."

"Virkelig? Vel, jeg liker fortsatt å starte hver leksjon med den setningen."

"I dag skal vi studere String-klassen i dybden."

"Men jeg vet allerede alt om det. Jeg vet til og med at String-klassen er uforanderlig."

"String-klassen har 46 metoder. Hvor mange av dem kjenner du?"

"Ikke mer enn ti. Faktisk, sannsynligvis ca 5 maks."

"Så hør etter."

"Javas skapere la merke til at de fleste strenger i programmer ikke er ment å bli modifisert, men noen ganger blir de modifisert likevel. Det er veldig irriterende når du oppretter en streng, lagrer noe viktig i den, sender den til en annens metode, og den blir endret . For å forhindre at dette skjer, bestemte de seg for å lage både foranderlige og uforanderlige strenger."

"String-klassen er for uforanderlige strenger, og StringBuilder- klassen er for mutbare. Objekter av disse klassene konverteres enkelt til den andre typen. I de fleste tilfeller trenger Java-utviklere ganske enkelt String, noe som beviser at Javas skapere hadde rett."

"Så hvis jeg trenger en String, bruker jeg String-klassen. Og hvis jeg trenger en mutbar String, bruker jeg StringBuilder- klassen ?"

"Ja. Faktisk er det en annen klasse kalt StringBuffer. Det er en kopi av StringBuilder, bortsett fra at alle metodene er erklært som synkroniserte , slik at objektet kan nås fra forskjellige tråder i programmet."

"Og hva med dette eksemplet? Blir ikke strengen endret her?"

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

"Nei. Det er to String-objekter her: «cat» og «cat-cat». Det andre lages ved å bruke det første, men det første objektet endres ikke. I virkeligheten er ting mye mer interessant her. Her er koden kompilatoren genererer når den kompilerer eksemplet ditt:"

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

"Så StringBuilder brukes nesten alltid til å lage nye strenger, men noen ganger gjør kompilatoren ganske enkelt alt arbeidet for deg. Men versjonen din er enklere, tror du ikke?"

"Ja, det er kjempebra at Java har en så avansert kompilator."

"Vel, la oss nå gå gjennom String-klassens metoder:"

1) Hvordan finner jeg lengden til en streng?

" Lengdemetoden returnerer en strengs lengde (antall tegn i den)."

Metode(r) Eksempel(r)
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) Hvordan får jeg en karakter fra en streng?

" CharAt- metoden returnerer et tegn fra en streng etter indeksen. Tegnindeksene starter på 0.

Metode(r) Eksempel(r)
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) Hvordan får jeg karakterer fra en streng?

Hvordan får jeg karakterer fra en streng?

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

4) Hvordan sammenligner jeg strenger?

«Equals-metoden sjekker om strengene samsvarer, og equalsIgnoreCase -metoden sjekker om strengene samsvarer når store og små bokstaver ignoreres.

Metode(r) Metode(r)
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) Hvordan lager jeg alle bokstavene i en streng med store eller små bokstaver?

" ToUpperCase- metoden returnerer en kopi av strengen med alle store bokstaver."

" ToLowerCase- metoden returnerer en kopi av strengen med alle små bokstaver."

Metode(r) Eksempel(r)
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) Hvordan fjerner jeg mellomrom på begynnelsen og slutten av en streng?

"Trimmetoden returnerer en kopi av en streng uten mellomrom på begynnelsen og slutten."

Metode(r) Eksempel(r)
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

Resultat:

s == "Good news, everyone!";