StringBuffer i Java är en trådsäker, föränderlig sekvens av tecken därmed använda StringBuffer klass kan du skapa modifierbara Strängobjekt.
i poststrängen i Java har vi redan sett att Strängobjekt är oföränderliga, dvs strängar är konstanta; deras värden kan inte ändras efter att de skapats. På grund av denna oföränderlighetsegenskap när du använder en Strängmodifieringsmetod som sammanfogning vad som faktiskt händer är att en ny sträng skapas och returneras som innehåller resultatet av operationen. Det kan leda till skapandet av massor av mellanliggande Strängobjekt om strängen ändras flera gånger vilket i sin tur innebär att mer minne används för dessa mellanliggande objekt.
använda StringBuffer-objekt du kan undvika detta problem med att skapa flera objekt eftersom det är muterbart. Inte överraskande är de viktigaste operationerna på en StringBuffer append och insert-metoderna.
- viktiga punkter om Java StringBuffer
- Java StringBuffer konstruktörer
- Java StringBuffer metod exempel
viktiga punkter om Java StringBuffer
några av de viktiga punkterna om Java StringBuffer StringBuffer klass.
- StringBuffer i Java ger mycket av funktionaliteten i Strängklass med en framträdande avvikelse som StringBuffer är föränderlig.
- StringBuffer är också trådsäker, så StringBuffer-objekt kan säkert användas av flera trådar. Metoderna för StringBuffer-klassen synkroniseras vid behov.
- varje StringBuffer skapas med en kapacitet. Så länge längden på teckensekvensen i strängbufferten inte överstiger kapaciteten är det inte nödvändigt att allokera en ny intern buffertarray. Om den interna bufferten överflödar blir den automatiskt större.
- Java 5 framåt StringBuilder klass tillhandahålls också som motsvarar StringBuffer klass men utformad för användning av en enda tråd. StringBuilder är snabbare, eftersom den inte utför någon synkronisering.
Java StringBuffer-konstruktörer
det finns fyra konstruktörer i StringBuffer-klassen.
- StringBuffer () – konstruerar en strängbuffert utan tecken i den och en initial kapacitet på 16 tecken.
StringBuffer sb = new StringBuffer();
- StringBuffer(int– kapacitet) – konstruerar en strängbuffert utan tecken i den och den angivna initiala kapaciteten.
StringBuffer sb = new StringBuffer(30);
- StringBuffer(CharSequence seq)– konstruerar en strängbuffert som innehåller samma tecken som den angivna teckensekvensen.
här CharSequence är ett gränssnitt som genomförs av CharBuffer, Segment, sträng, StringBuffer, StringBuilder. - StringBuffer (String str)– konstruerar en strängbuffert initierad till innehållet i den angivna strängen.
StringBuffer sb = new StringBuffer("Hello");
Java StringBuffer method exempel
append method
append method är överbelastad för att acceptera data av vilken typ som helst. Denna metod lägger till strängrepresentationen av den givna datatypen till befintlig buffert. Metoden Lägg till lägger alltid till dessa tecken i slutet av bufferten.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.append(" "); sb.append("World").append(" ").append(123); System.out.println("Appended String- " + sb.toString()); }}
Output
Appended String- Hello World 123
som du kan se från exemplet append används med sträng som argument och även int som argument eftersom det är överbelastat för dessa datatyper. Du kan också kedja append metod som gjort i denna kod linje-
sb.append("World").append(" ").append(123)
med append metod kan vi också kontrollera påståendet att strängen är oföränderlig där som StringBuffer är föränderlig. I exemplet skapas ett StringBuffer-objekt och sedan läggs värden till det och den returnerade referensen lagras i en annan StringBuffer.
På samma sätt som en sträng skapas och värden läggs till den, returneras strängen också av en annan sträng.
vid kontroll av likheten mellan två StringBuffer referenser kan du se att båda är samma medan för sträng båda är olika.
public class StringLiteral {public static void main(String args) {// With StringBufferSystem.out.println("StringBuffer...");StringBuffer sb = new StringBuffer("Hello");sb.append(" ");StringBuffer newsb = sb.append("World").append(" ").append(123);if (sb == newsb) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}// With StringSystem.out.println("String...");String str = "Hello";String newstr = str.concat(" ").concat("World").concat(" ").concat("123");if (str == newstr) {System.out.println("Reference is same");}else {System.out.println("Reference is different");}}}
utgång
StringBuffer...Reference is sameString...Reference is different
infoga metod
infoga metod är överbelastad för att acceptera data av vilken typ som helst. Denna metod används för att infoga strängrepresentationen av den givna datatypen till befintlig buffert. Infoga-metoden lägger till tecknen vid en viss punkt.
infoga metod tar två argument först ett heltal som anger positionen där tecken ska infogas i bufferten och andra argumentet är texten som ska infogas.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Knp"); sb.insert(3, "Code"); System.out.println("String after insert- " + sb); }}
utgång
String after insert- KnpCode
längd– och kapacitetsmetoder
kapacitet () – returnerar strömkapaciteten för Stringbufferten.
length () – Returnerar antalet tecken i denna sekvens.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer(30); sb.append("Hello"); System.out.println("Capacity of StringBuffer- " + sb.capacity()); System.out.println("Length of StringBuffer- " + sb.length()); }}
Output
Capacity of StringBuffer- 30Length of StringBuffer- 5
som du kan se skapas StringBuffer med kapaciteten som 30 så kapaciteten visas som 30 där antalet tecken i bufferten är 5 så längden visas som 5.
delete och deleteCharAt metoder
- delete (int start, int end) – tar bort tecknen i en delsträng av denna sekvens. start som indikerar att startindexet är inklusive där som slut vilket indikerar att slutindexet är exklusivt.
- deleteCharAt (int– index) – tar bort rödingen vid den angivna positionen i denna sekvens.
public class StringLiteral { public static void main(String args) { StringBuffer sb = new StringBuffer("Hello"); sb.delete(1, 4); System.out.println("After deletion- " + sb); System.out.println("Length of StringBuffer- " + sb.length()); }}
utgång
After deletion- HoLength of StringBuffer- 2
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.deleteCharAt(4);System.out.println("After deletion- " + sb);System.out.println("Length of StringBuffer- " + sb.length());}}
utgång
After deletion- HellLength of StringBuffer- 4
Java StringBuffer omvänd metod
reverse()– vänder den befintliga stringbufferten.
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");System.out.println("Reversed- " + sb.reverse());}}
Output
Reversed- olleH
Java StringBuffer ersätt metod
ersätt(int start, int end, String str)– ersätter tecknen i en delsträng i denna sekvens (start till slut-1) med tecken i den angivna strängen.
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.replace(3, 5, "ena");System.out.println("String- " + sb);}}
utgång
String- Helena
- Java StringBuilder med Metodexempel
- Varför strängen är oföränderlig i Java
- är Java-strängtråd säker
- Java String intern() metod
- Java String split() metod
- kompakta strängar i Java 9
- hitta stränglängd utan att använda längd () – metoden i Java
- konvertera char till sträng och sträng till Char i Java
det är allt för ämnet Java StringBuffer med metodexempel. Om något saknas eller om du har något att dela om ämnet skriv en kommentar.
Du kanske också gillar