StringBuffer i Java er en trådsikker, foranderlig sekvens af tegn, således at du ved hjælp af StringBuffer-klasse kan oprette modificerbare Strengobjekter.
i poststrengen i Java har vi allerede set, at Strengobjekter er uforanderlige, dvs.strenge er konstante; deres værdier kan ikke ændres, når de er oprettet. På grund af denne uforanderlighed egenskab, når du bruger en streng modifikation metode som sammenkædning hvad der rent faktisk sker, er, at en ny streng oprettes og returneres, der indeholder resultatet af operationen. Det kan føre til oprettelse af masser af mellemliggende Strengobjekter, hvis strengen ændres flere gange, hvilket igen betyder, at der bruges mere hukommelse til disse mellemliggende objekter.
brug af StringBuffer-objekt du kan undgå dette problem med at oprette flere objekter, da det kan ændres. Ikke overraskende de vigtigste operationer på en StringBuffer er de tilføje og indsætte metoder.
- vigtige punkter om Java StringBuffer
- Java StringBuffer Constructors
- Java StringBuffer metode eksempler
vigtige punkter om Java StringBuffer
Nogle af de vigtige punkter om Java StringBuffer StringBuffer klasse.
- StringBuffer i Java giver meget af funktionaliteten i Strengklasse med en fremtrædende afvigelse, som StringBuffer kan ændres.
- StringBuffer er også tråd-sikker således StringBuffer objekt kan sikkert bruges af flere tråde. Metoderne i StringBuffer-klassen synkroniseres, hvor det er nødvendigt.
- hver StringBuffer er skabt med en kapacitet. Så længe længden af tegnsekvensen indeholdt i strengbufferen ikke overstiger kapaciteten, er det ikke nødvendigt at allokere et nyt internt bufferarray. Hvis den interne bufferoverløb, bliver den automatisk større.Java 5 videre StringBuilder klasse leveres også, hvilket svarer til StringBuffer klasse, men designet til brug af en enkelt tråd. StringBuilder er hurtigere, da det udfører ingen synkronisering.
Java StringBuffer Constructors
der er fire konstruktører i StringBuffer klasse.
- StringBuffer()– konstruerer en strengbuffer uden tegn i den og en indledende kapacitet på 16 tegn.
StringBuffer sb = new StringBuffer();
- StringBuffer(int kapacitet)– konstruerer en strengbuffer uden tegn i den og den angivne startkapacitet.
StringBuffer sb = new StringBuffer(30);
- StringBuffer– konstruerer en strengbuffer, der indeholder de samme tegn som den angivne tegnsekvens.
her Charsekvens er en grænseflade, som er implementeret af CharBuffer, Segment, String, StringBuffer, StringBuilder. - StringBuffer(String str)– konstruerer en strengbuffer initialiseret til indholdet af den angivne streng.
StringBuffer sb = new StringBuffer("Hello");
Java StringBuffer metode eksempler
Tilføj metode
Tilføj metode er overbelastet for at acceptere data af enhver type. Denne metode tilføjer strengrepræsentationen af den givne datatype til eksisterende buffer. Tilføjelsesmetoden tilføjer altid disse tegn i slutningen af bufferen.
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 fra eksemplet append bruges med streng som argument og også int som argument, da det er overbelastet for disse datatyper. Du kan også kæde tilføjelsesmetode som gjort i denne kodelinie-
sb.append("World").append(" ").append(123)
Ved hjælp af tilføjelsesmetode kan vi også kontrollere udsagnet om, at strengen er uforanderlig, hvor som StringBuffer kan ændres. I eksemplet oprettes et StringBuffer-objekt, og derefter tilføjes værdier til det, og den returnerede reference gemmes i en anden StringBuffer.
på samme måde som en streng oprettes og værdier tilføjes til den, henvises der også til returneret streng af en anden streng.
ved kontrol af ligestilling mellem to StringBuffer referencer kan du se, at begge er ens, mens for streng begge er forskellige.
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");}}}
Output
StringBuffer...Reference is sameString...Reference is different
indsæt metode
indsæt metode er overbelastet for at acceptere data af enhver type. Denne metode bruges til at indsætte strengrepræsentationen af den givne datatype til eksisterende buffer. Metoden indsæt tilføjer tegnene på et bestemt punkt.
indsæt metode tager to argumenter først et heltal, der angiver den position, hvor tegn skal indsættes i bufferen, og andet argument er teksten, der skal indsættes.
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); }}
Output
String after insert- KnpCode
længde og kapacitetsmetoder
kapacitet()– Returnerer den aktuelle kapacitet af StringBuffer.
længde () – Returnerer antallet af tegn i denne rækkefølge.
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, oprettes StringBuffer med kapaciteten som 30, så kapaciteten vises som 30, hvor antallet af tegn i bufferen er 5, så længden vises som 5.
delete and deleteCharAt methods
- delete(int start, int end)– fjerner tegnene i en substring af denne sekvens. start, der angiver, at begyndelsesindekset er inkluderende, hvor som Ende, der angiver, at slutindekset er eksklusivt.
- deleteCharAt (int– indeks) – fjerner char på den angivne position i denne rækkefølge.
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()); }}
Output
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());}}
Output
After deletion- HellLength of StringBuffer- 4
Java StringBuffer reverse method
reverse()– vender den eksisterende StringBuffer.
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 replace method
replace(int start, int end, String str)– erstatter tegnene i en substring af denne sekvens (start til slut-1) med tegn i den angivne streng.
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.replace(3, 5, "ena");System.out.println("String- " + sb);}}
Output
String- Helena
- Java StringBuilder med Metodeeksempler
- hvorfor streng er uforanderlig i Java
- er Java String Thread Safe
- Java String intern() metode
- Java String split() metode
- Java String split() metode
- Java String split () metode
- kompakte strenge i Java 9
- find længde på streng uden at bruge Længde () metode i Java
- konverter char til streng og streng til char i Java
/li>
det er alt for emnet Java StringBuffer med metodeeksempler. Hvis der mangler noget, eller du har noget at dele om emnet, så skriv en kommentar.
Du vil måske også synes om