StringBuffer Javassa on kierreturvallinen, muunneltavissa oleva merkkisarja, joten StringBuffer-luokalla voi luoda muokattavia Merkkijonoesineitä.
Jaavan Jälkijonossa on jo nähty, että Merkkijonojoukot ovat muuttumattomia eli merkkijonot ovat vakio; niiden arvoja ei voi muuttaa niiden luomisen jälkeen. Tämän muuttumattomuusominaisuuden vuoksi, kun käytät merkkijonon muokkausmenetelmää, kuten konsekutenaatiota, mitä todella tapahtuu, on se, että uusi merkkijono luodaan ja palautetaan, joka sisältää toiminnon tuloksen. Tämä voi johtaa luomiseen paljon väli merkkijono objekteja, jos merkkijono muunnetaan useita kertoja, mikä puolestaan tarkoittaa enemmän muistia käytetään näitä väli objekteja.
käyttämällä StringBuffer-objektia voit välttää tämän ongelman luoda useita objekteja, koska se on muunneltavissa. Ei ole yllättävää, että Stringbufferin pääasialliset toiminnot ovat append ja insert-menetelmät.
- tärkeät pisteet Java Stringbufferista
- Java StringBuffer-rakentajista
- Java StringBuffer-menetelmäesimerkkejä
tärkeät pisteet Java Stringbufferista
joitakin tärkeitä kohtia StringBuffer-Luokka.
- StringBuffer Javassa tarjoaa suuren osan Merkkijonoluokan toimivuudesta yhdellä huomattavalla poikkeamalla, että StringBuffer on muunnettavissa.
- StringBuffer on myös kierreturvallinen, joten StringBuffer-objektia voidaan turvallisesti käyttää useilla kierteillä. StringBuffer-luokan menetelmät synkronoidaan tarvittaessa.
- jokainen StringBuffer luodaan kapasiteetilla. Niin kauan kuin merkkijonopuskurin sisältämän merkkijakson pituus ei ylitä kapasiteettia, ei ole tarpeen jakaa uutta sisäistä puskuriryhmää. Jos sisäinen puskuri tulvii yli, se kasvaa automaattisesti.
- tarjolla on myös Java 5 onward StringBuilder-luokka, joka vastaa StringBuffer-luokkaa, mutta on suunniteltu käytettäväksi yhdellä langalla. StringBuilder on nopeampi, koska se ei suorita synkronointia.
Java Stringbufferin rakentajia
Stringbufferin luokassa on neljä rakentajaa.
- StringBuffer()– rakentaa merkkijonopuskurin, jossa ei ole merkkejä ja jonka alkukapasiteetti on 16 merkkiä.
StringBuffer sb = new StringBuffer();
- StringBuffer(int capacity)– rakentaa merkkijonopuskurin, jossa ei ole merkkejä ja määritelty alkukapasiteetti.
StringBuffer sb = new StringBuffer(30);
- StringBuffer(CharSequence seq)– rakentaa merkkijonopuskurin, joka sisältää samat merkit kuin määritelty CharSequence.
tässä CharSequence on käyttöliittymä, jonka toteuttaa CharBuffer, Segment, String, StringBuffer, StringBuilder. - StringBuffer(String str)– rakentaa merkkijonopuskurin, joka on alustettu määritetyn merkkijonon sisältöön.
StringBuffer sb = new StringBuffer("Hello");
Java StringBuffer method examples
append method
append method is overloaded so to accept data of any type. Tämä menetelmä liittää annetun tietotyypin merkkijonoesityksen olemassa olevaan puskuriin. Lisäystapa lisää nämä merkit aina puskurin loppuun.
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
kuten esimerkistä näkyy, liitettä käytetään merkkijonon kanssa argumenttina ja myös int argumenttina, koska se on ylikuormitettu näille tietotyypeille. Voit myös ketjuttaa lisäysmenetelmän kuten tällä koodirivillä-
sb.append("World").append(" ").append(123)
käyttäen append-menetelmää voimme myös tarkistaa lausuman, että merkkijono on muuttumaton missä StringBuffer on muuntuva. Esimerkissä luodaan StringBuffer-objekti, jonka jälkeen arvot liitetään siihen ja palautettu viite tallennetaan toiseen Stringbufferiin.
samalla tavalla kuin merkkijono luodaan ja siihen liitetään arvot, palautettuun merkkijonoon viitataan myös toisella merkkijonolla.
tarkastettaessa kahden StringBuffer-viittauksen tasa-arvoa voidaan nähdä, että molemmat ovat samoja, kun taas merkkijonossa molemmat ovat erilaisia.
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
insert method
insert method is overloaded so to accepting data of any type. Tätä menetelmää käytetään lisäämään annetun tietotyypin merkkijonoesitys olemassa olevaan puskuriin. Inserttimenetelmä lisää merkit määrättyyn kohtaan.
insert-menetelmässä käytetään kahta argumenttia, joista ensin saadaan kokonaisluku, joka ilmaisee, missä kohdassa puskuriin lisätään merkkejä, ja toinen argumentti on lisättävä teksti.
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); }}
Lähtö
String after insert- KnpCode
pituus– ja kapasiteettimenetelmät
kapasiteetti () – palauttaa Stringbufferin nykyisen kapasiteetin.
length()– palauttaa tässä järjestyksessä olevien merkkien määrän.
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
kuten näette StringBuffer on luotu kapasiteetti on 30 joten kapasiteetti näkyy 30 jossa kuten merkkien määrä puskurissa on 5 joten pituus näytetään 5.
deletecharat methods
- delete(int start, int end)– poistaa merkit tämän sekvenssin substraatissa. alku, joka osoittaa alkuindeksi on inclusive jos loppu, joka osoittaa loppuindeksi on eksklusiivinen.
- deleteCharAt(int index)– poistaa merkin tässä järjestyksessä määrätystä paikasta.
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()– kääntää olemassa olevan stringbufferin.
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)– korvaa tämän sekvenssin substraatin merkit (alusta loppuun-1) määritellyn merkkijonon merkeillä.
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 with Method Examples
- Why String is Immutable in Java
- Is Java String Thread Safe
- Java String intern() Method
- Java String split() Method
- kompaktit kielet Java 9: ssä
- etsi merkkijonon pituus käyttämättä pituutta () – menetelmää Javassa
- Muunna char merkkijonoksi ja merkkijono char: ksi Java-kielessä
siinä kaikki aiheen Java StringBuffer menetelmäesimerkeillä. Jos jotain puuttuu tai sinulla on jotain jaettavaa aiheesta, kirjoita kommentti.
Voit myös pitää