a StringBuffer a Java-ban egy szálbiztos, változtatható karaktersorozat, így a StringBuffer osztály segítségével módosítható karakterlánc objektumokat hozhat létre.
a Java post karakterláncában már láttuk, hogy a karakterlánc-objektumok megváltoztathatatlanok, azaz a karakterláncok állandóak; értékeik létrehozása után nem változtathatók meg. Ennek a változhatatlansági tulajdonságnak köszönhetően, amikor olyan karakterlánc-módosítási módszert használ, mint az összefűzés, valójában az történik, hogy egy új karakterlánc jön létre és kerül vissza, amely tartalmazza a művelet eredményét. Ez sok köztes karakterlánc-objektum létrehozásához vezethet, ha a karakterláncot többször módosítják, ami viszont azt jelenti, hogy több memóriát használnak ezekhez a köztes objektumokhoz.
a StringBuffer objektum használatával elkerülheti ezt a problémát, ha több objektumot hoz létre, mivel változtatható. Nem meglepő, hogy a StringBuffer fő műveletei az append and insert metódusok.
- fontos pontok a Java Stringbufferről
- Java StringBuffer konstruktorok
- Java StringBuffer módszer példák
fontos pontok a Java Stringbufferről
néhány fontos pont a Java Stringbufferről StringBuffer osztály.
- a StringBuffer a Java-ban a String osztály funkcionalitásának nagy részét biztosítja egy kiemelkedő eltéréssel, hogy a StringBuffer változtatható.
- a StringBuffer szintén menetbiztos, így a StringBuffer objektum biztonságosan használható több szálon. A StringBuffer osztály módszereit szükség esetén szinkronizáljuk.
- minden StringBuffer kapacitással jön létre. Mindaddig, amíg a karakterlánc-pufferben található karaktersorozat hossza nem haladja meg a kapacitást, nem szükséges új belső puffer tömböt kiosztani. Ha a belső puffer túlcsordul, akkor automatikusan nagyobb lesz.
- Java 5 tovább StringBuilder osztály is rendelkezésre áll, amely egyenértékű a StringBuffer osztály, de használatra tervezték egy szál. StringBuilder gyorsabb, mivel nem végez szinkronizálást.
Java StringBuffer konstruktorok
a StringBuffer osztályban négy konstruktor van.
- StringBuffer()– karakter nélküli karakterlánc-puffert épít fel, amelynek kezdeti kapacitása 16 karakter.
StringBuffer sb = new StringBuffer();
- StringBuffer(int kapacitás)– olyan karakterlánc puffert hoz létre, amelyben nincs karakter és a megadott kezdeti kapacitás.
StringBuffer sb = new StringBuffer(30);
- StringBuffer(CharSequence seq)– olyan karakterlánc-puffert hoz létre, amely ugyanazokat a karaktereket tartalmazza, mint a megadott CharSequence.
itt CharSequence egy interfész, amely által végrehajtott CharBuffer, szegmens, String, StringBuffer, StringBuilder. - StringBuffer(String str)– a megadott karakterlánc tartalmára inicializált karakterlánc-puffert épít.
StringBuffer sb = new StringBuffer("Hello");
Java StringBuffer módszer példák
hozzáfűzési módszer
a hozzáfűzési módszer túlterhelt, hogy bármilyen típusú adatot elfogadjon. Ez a módszer hozzáfűzi az adott adattípus karakterlánc-ábrázolását a meglévő pufferhez. A hozzáfűzési módszer mindig hozzáadja ezeket a karaktereket a puffer végén.
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()); }}
kimenet
Appended String- Hello World 123
mint látható a példából hozzáfűzni használják String argumentumként, valamint int argumentumként, mivel túlterhelt ezen adattípusok. Azt is Lánc hozzáfűzni módszer kész ebben a kódsorban –
sb.append("World").append(" ").append(123)
segítségével hozzáfűzni módszer azt is ellenőrizheti az állítást, hogy a húr változhatatlan, ahol a StringBuffer változtatható. A példában egy StringBuffer objektum jön létre, majd az értékeket hozzáfűzi, és a visszaadott hivatkozást egy másik StringBuffer tárolja.
ugyanúgy, ahogy egy karakterlánc létrejön, és az értékek hozzá vannak csatolva, a visszaadott karakterláncra egy másik karakterlánc is hivatkozik.
két StringBuffer hivatkozás egyenlőségének ellenőrzésekor láthatja, hogy mindkettő azonos, míg a String esetében mindkettő eltérő.
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");}}}
kimenet
StringBuffer...Reference is sameString...Reference is different
beszúrási módszer
beszúrási módszer túlterhelt, hogy bármilyen típusú adatot elfogadjon. Ez a módszer az adott adattípus karakterlánc-ábrázolásának beillesztésére szolgál a meglévő pufferbe. A Beszúrás módszer hozzáadja a karaktereket egy meghatározott ponthoz.
beszúrási módszer két argumentumot vesz fel, először egy egész számot, amely jelzi azt a helyet, ahová a karaktereket be kell illeszteni a pufferbe, a második argumentum pedig a beszúrandó szöveg.
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); }}
kimenet
String after insert- KnpCode
hossz és kapacitás módszerek
kapacitás()– visszaadja a StringBuffer aktuális kapacitását.
length()– visszaadja a karakterek számát ebben a sorrendben.
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()); }}
kimenet
Capacity of StringBuffer- 30Length of StringBuffer- 5
amint láthatja, a StringBuffer 30 kapacitással jön létre, így a kapacitás 30-ként jelenik meg, ahol a pufferben lévő karakterek száma 5, így a hossz 5-ként jelenik meg.
delete and deleteCharAt metódusok
- delete (int start, Int end) – eltávolítja a karaktereket ennek a sorozatnak egy részstringjében. start, amely azt jelzi, hogy a kezdő index befogadó, ahol as end, amely azt jelzi, hogy a befejező index kizárólagos.
- deleteCharAt(int index)– eltávolítja a karaktert a megadott pozícióban ebben a sorrendben.
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()); }}
kimenet
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());}}
kimenet
After deletion- HellLength of StringBuffer- 4
Java StringBuffer fordított módszer
/ p>
reverse()– megfordítja a meglévő StringBuffer.
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");System.out.println("Reversed- " + sb.reverse());}}
kimenet
Reversed- olleH
Java StringBuffer replace method
replace(int start, Int end, String str)– lecseréli a karaktersorozatban szereplő karaktereket (start to end-1) a megadott karakterlánc karaktereivel.
public class StringLiteral {public static void main(String args) {StringBuffer sb = new StringBuffer("Hello");sb.replace(3, 5, "ena");System.out.println("String- " + sb);}}
kimenet
String- Helena
- Java StringBuilder metódus példákkal
- miért változhatatlan a String a Java-ban
- biztonságos a Java String Thread
- Java String intern() metódus
- Java String split() metódus
- Java String split() metódus
- compact strings a Java 9-ben
- keresse meg a string hosszát a length () metódus használata nélkül a Java-ban
- konvertálja a karakterláncot karakterláncba, a karakterláncot pedig karakterláncba a Java-ban
Ez minden a Java StringBuffer témához metódus példákkal. Ha valami hiányzik, vagy van valami megosztani a témával kapcsolatban, kérjük, írjon megjegyzést.
még kedvelheted