Java StringBuilder

Java StringBuilder
Et strengobjekt, instantiert fra Java String -klassen, er et objekt som omslutter en streng bokstavelig. Problemet med strengobjektet i Java er at de bokstavelige tegnene ikke kan endres. Stringbuffer -klassen kommer til unnsetning. Det bokstavelige for strengbufferen er mutable. Stringbuffer har også fordelen av å være trådsikker (trygt for bruk av flere tråder). Imidlertid kan operasjoner med StringBuffer være relativt lang. Så det er en enklere form for StringBuffer -klassen, som er StringBuilder -klassen. StringBuilder er ikke trådsikker. Klassen er i javaen.lang.* pakke, og trenger ikke import. Denne artikkelen forklarer det grunnleggende i StringBuilder.

StringBuilder Construction

Denne klassen har fire overbelastede konstruktører. Tre blir forklart her.

public StringBuilder ()

Denne konstruktøren oppretter et tomt StringBuilder -objekt, som vist i følgende uttalelse:

StringBuilder ST = new StringBuilder ();

Tegn kan deretter legges til StringBuilder -objektet, ST.

public StringBuilder (CharSequence SEQ)

Denne konstruktøren tar en streng bokstavelig som et argument, som vist ved å følge kodesegmentet:

StringBuilder ST = New StringBuilder ("Dette er danseren.");
System.ute.println (ST);

Utgangen er:

Dette er danseren.

public StringBuilder (String Str)

Denne konstruktørmetoden tar en strengidentifikator som et argument, som vist i følgende kodesegment:

StringBuilder ST = New StringBuilder ("Dette er danseren.");
StringBuilder ST1 = new StringBuilder (ST);
System.ute.println (ST1);

Utgangen er:

Dette er danseren.

StringBuilder -metoder

offentlig StringBuilder vedlegg (char c)

Dette legger til et tegn til StringBuilder -objektet, som kan være tomt. Følgende kodesegment illustrerer dette:

StringBuilder ST = new StringBuilder ();
st.vedlegg ('t'); st.vedlegg ('h'); st.vedlegg ('i'); st.vedlegg ('s'); st.vedlegg (");
st.vedlegg ('i'); st.vedlegg ('s');
System.ute.println (ST);

Utgangen er:

Dette er

offentlig StringBuilder vedlegg (CharSequence s)

Dette legger til en strengsekvens (streng bokstavelig). Følgende kodesegment illustrerer dette:

StringBuilder ST = new StringBuilder ("This Is");
st.vedlegg ("");
System.ute.println (ST);

Utgangen er:

"Dette er "

public StringBuilder Append (String Str)

Dette bruker en strengidentifikator for å legge. Følgende kodesegment illustrerer dette:

String strr = "danser";
StringBuilder ST = New StringBuilder ("Dette er");
st.vedlegg (strr);
System.ute.println (ST);

Utgangen er:

Dette er danseren

offentlig int -lengde ()

Denne metoden returnerer antall tegn i strengen, som vist i følgende kodesegment:

StringBuilder ST = New StringBuilder ("Dette er danseren.");
int sz = st.lengde();
System.ute.Println (SZ);

Utgangen er:

19

Lengden er 19, noe som betyr at det er 19 tegn.

Public Char Charat (Int Index)

Denne metoden returnerer en kopi av røye ved indeksen. Indekstelling begynner fra 0. For-loopen i følgende kodesegment returnerer alle tegnene på StringBuilder-objektet:

StringBuilder SB = New StringBuilder ("Dette er danseren.");
for (int i = 0; ichar ch = sb.Charat (i);
System.ute.trykk (CH);

System.ute.println ();

Utgangen er:

Dette er danseren.

public void setcharat (int indeks, char ch)

Karakteren i en indeksposisjon kan endres. Indekstelling begynner fra 0. Følgende kodesegment bruker denne metoden for å endre, 'i' i “dette” til 'U', noe som gjør "dermed":

StringBuilder SB = New StringBuilder ("Dette er danseren.");
SB.setcharat (2, 'u');
System.ute.println (SB);

Utgangen er:

Dermed er danseren.

public void setLength (int newlength)

Denne metoden endrer lengden på strengen. Hvis den gitte lengden er mindre enn den opprinnelige strengen, er det avkortning. Tellingen av newlengde begynner fra 1. Følgende kodesegment avkortes strengen til en lengde på 7:

StringBuilder SB = New StringBuilder ("Dette er danseren.");
SB.setLength (7);
System.ute.println (SB);

Utgangen er:

Dette er

public int indexOf (String substr)

Indekstelling begynner fra 0. Dette returnerer startindeksen for den første forekomsten av substringen gitt som argument. Følgende kode er en illustrasjon:

StringBuilder SB = New StringBuilder ("Dette er danseren.");
String sst = "er";
int ret = sb.IndexOf (SST);
System.ute.println (ret);

Utgangen er 2, for "er" i "dette".

public int indexOf (String str, int fromindex)

Indekstelling begynner fra 0. Dette returnerer den første forekomsten av substringen gitt som første argument, som begynner på verdien av det andre argumentet. Følgende kode illustrerer dette:

StringBuilder SB = New StringBuilder ("Dette er danseren.");
String sst = "er";
int ret = sb.IndexOf (SST);
System.ute.println (ret);

Utgangen er 12.

Public StringBuilder Deletecharat (Int Index)

Dette sletter en bestemt karakter. I følgende kodesegment blir tegn på indeks 8, indeks 9, indeks 10 og indeks 11 slettet. Både de gamle og nye strengene endres samtidig hver gang.

StringBuilder SB = New StringBuilder ("Dette er danseren.");
SB.deletecharat (8); SB.deletecharat (8); SB.deletecharat (8);
StringBuilder ret = SB.deletecharat (8);
System.ute.println (SB); System.ute.println (ret);

Utgangen er:

Dette er danser.
Dette er danser.

public StringBuilder Delete (int Start, Int End)

I forrige kode, når tegnet ved indeks 8 ble slettet, ble den neste karakteren ved indeks 8. I stedet for å slette en etter en, kan tegnene fra indeks 8 til indeks 11 slettes i en kommando, som følgende kode viser:

StringBuilder SB = New StringBuilder ("Dette er danseren.");
StringBuilder ret = SB.slett (8, 12);
System.ute.println (SB); System.ute.println (ret);

Utgangen er:

Dette er danser.
Dette er danser.

Merk at metodens sluttindeks (12) ikke er inkludert i det effektive området.

public StringBuilder erstatning (int start, int end, string str)

En understreng i den originale strengen, kan erstattes av en annen streng, STR, som kan være lengre eller kortere enn den originale strengen. Følgende kodesegment illustrerer dette:

StringBuilder SB = New StringBuilder ("Dette er danseren.");
StringBuilder ret = SB.erstatte (0, 7, "her:");
System.ute.println (SB); System.ute.println (ret);

Utgangen er:

Her: danseren.
Her: danseren.

Igjen, sluttindeksen er en høyere enn den faktiske enden av området.

public StringBuilder Insert (Int Offset, Char C)

Dette setter inn et tegn i strengen, og øker lengden med en. Offset er indeksen der karakteren vil bli satt inn. Tellingen av forskyvning begynner fra 1 og ikke 0. Til høyre for det som er satt inn, blir karakterene i strengen forskjøvet ett sted til høyre. I følgende kode settes 'S' mellom 'R' og '.':

StringBuilder SB = New StringBuilder ("Dette er danseren.");
StringBuilder ret = SB.sett inn (18, 's');
System.ute.println (SB);
System.ute.println (ret);

Utgangen er:

Dette er danserne.
Dette er danserne.

Metoden returnerer en ny streng. Både de gamle og nye strengene er modifisert. Utgangssetningen er ikke god engelsk, og den vil bli adressert nedenfor:

public StringBuilder Insert (Int Offset, Char [] Str)

Husk at forskyvningstelling i Java, begynner fra en, ikke null. Med det kan en understreng settes inn i den opprinnelige strengen, som i følgende kode:

StringBuilder SB = New StringBuilder ("Dette er danseren.");
StringBuilder ret = SB.Sett inn (12, "Big");
System.ute.println (SB); System.ute.println (ret);

Utgangen er:

Dette er den store danseren.
Dette er den store danseren.

Både originalen og returstrengene hadde endringen.

public StringBuilder Insert (Int Index, Char [] STR, INT OFFSET, INT LEN)

En understreng fra en annen streng kan settes inn i den opprinnelige strengen, som illustrert i følgende kodeprøve:

StringBuilder SB = New StringBuilder ("Dette er danseren.");
StringBuilder anoterstr = new StringBuilder ("The Big Boss.");
StringBuilder ret = SB.Sett inn (12, Anothersstr, 4, 8);
System.ute.println (SB); System.ute.println (ret);

Utgangen er:

Dette er den store danseren.
Dette er den store danseren.

Substring -delen hentet fra den andre strengen er: len - offset, e.g. 8 - 4 for å bli "stor".

Konklusjon

Strengen bokstavelig kan ikke redigeres med strengklassen i Java. StringBuilder -klassen er en strengklasse hvis bokstavelig kan redigeres. Klassen er i javaen.lang.* pakke og trenger ikke import. Denne klassen har konstruktører og metoder. De mer ofte brukte er blitt forklart i de forrige seksjonene. Vi håper du fant denne artikkelen nyttig. Sjekk ut andre Linux -hint -artikler for flere tips og opplæringsprogrammer.