1. Ændring af strenge
I Java er strenge uforanderlige objekter. Dette blev gjort for at gøre String-klassen meget optimeret og for at den kunne bruges overalt. For eksempel anbefales kun uforanderlige typer til brug som nøgler i HashMap-samlingen .
Der opstår dog ofte situationer, hvor programmører ville finde det mere bekvemt for String
klassen at kunne ændres. De vil have en klasse, der ikke opretter en ny understreng, hver gang en af dens metoder kaldes.
Tja, antag, at vi har en meget stor streng, og vi ofte skal tilføje noget til slutningen af den. I dette tilfælde kan selv en samling af tegn ( ArrayList<Character>
) være mere effektiv end konstant at genskabe og sammenkæde String-objekter.
Det er netop derfor en String-lignende type, der kan ændres, blev tilføjet til Java-sproget. Det hedder StringBuilder
.
Oprettelse af et objekt
For at oprette et StringBuilder
objekt baseret på en eksisterende streng, skal du udføre en sætning som:
StringBuilder name = new StringBuilder(string);
For at oprette en tom foranderlig streng, skal du bruge en sætning som denne:
StringBuilder name = new StringBuilder();
Liste over metoder
Klassen StringBuilder
har to dusin nyttige metoder. Her er de vigtigste:
Metode | Beskrivelse |
---|---|
|
Konverterer det beståede objekt til en streng og føjer det til den aktuelle streng |
|
Konverterer det beståede objekt til en streng og indsætter det i den aktuelle streng |
|
Erstatter den del af strengen, der er angivet af start..end-intervallet, med den beståede streng |
|
Fjerner tegnet med det angivne indeks fra strengen |
|
Fjerner tegn inden for det angivne interval fra strengen |
|
Søger efter en understreng i den aktuelle streng |
|
Søger efter en understreng i den aktuelle streng, startende fra slutningen |
|
Returnerer tegnet i strengen ved det beståede indeks |
|
Returnerer understrengen defineret af det angivne interval |
|
Vender den aktuelle streng. |
|
Ændrer tegnet ved det angivne indeks til det beståede tegn |
|
Returnerer længden af strengen i tegn |
Her er en kort beskrivelse af hver metode
2. Beskrivelse af metoder:
Tilføjelse til en streng
Brug metoden for at tilføje noget til en foranderlig streng ( StringBuilder
) append()
. Eksempel:
Kode | Beskrivelse |
---|---|
|
|
Konvertering til en standardstreng
For at konvertere et StringBuilder
objekt til et String-objekt skal du blot kalde dets toString()
metode. Eksempel
Kode | Produktion |
---|---|
|
|
Hvordan sletter jeg et tegn?
For at slette et tegn i en foranderlig streng, skal du bruge deleteCharAt()
metoden. Eksempel:
Kode | Produktion |
---|---|
|
|
Hvordan erstatter jeg en del af en streng med en anden streng?
Til dette er der replace(int begin, int end, String str)
metoden. Eksempel:
Kode | Produktion |
---|---|
|
|
3. Nyttige eksempler på arbejde med strenge
Hvordan vender jeg en streng om?
Der er en særlig metode til at gøre dette — reverse()
; Eksempel:
Kode | Produktion |
---|---|
|
|
StringBuffer
klasse
Der er en anden klasse — StringBuffer, som er en analog af klassen StringBuilder
, men dens metoder er markeret med synchronized
modifikatoren. Det betyder, at StringBuffer
objektet kan tilgås samtidigt fra flere tråde.
Men det er meget langsommere end StringBuilder
. Du kan få brug for denne klasse, når du begynder aktivt at udforske multithreading i Java Multithreading- questen.
GO TO FULL VERSION