Java StringBuil­der klasi var izmantot tra­di­cio­nā­lo virkņu vietā. Atšķirībā no tra­di­cio­nā­la­jām virknēm, StringBuil­der ļauj veikt izmaiņas virknē, ne­iz­vei­do­jot jaunu objektu. Izmaiņas var veikt, iz­man­to­jot dažādas metodes.

Kas ir Java StringBuil­der?

Java valodas string klase ir nemainīga un tai nav ap­akš­kla­ses. Viena no al­ter­na­tī­vām šai galīgajai klasei ir Java valodas StringBuil­der. Tā izveido rakstzīm­ju secību, kuru var mainīt pēc tās iz­vei­do­ša­nas. Šādā veidā Java StringBuil­der ir līdzīgs StringBuffer. Abām klasēm ir līdzīgs mērķis, bet atšķirībā no bufera opcijas StringBuil­der nav sin­hro­ni­zēts. Tas padara StringBuil­der par labu izvēli, strādājot ar vienu pavedienu, jo tas ir daudz ātrāks nekā StringBuffer. Šajā apmācībā ie­pa­zīs­ti­nā­sim jūs ar StringBuil­der Java un parādīsim dažus no tā dau­dza­jiem lie­to­ju­miem.

Kāda ir Java StringBuil­der sintakse?

Java StringBuil­der sintakse vienmēr atbilst vienam un tam pašam modelim, kas izskatās šādi:

public final class StringBuilder
	extends Object
		implements Serializable, CharSequence
java

Lai saprastu, kā darbojas šī klase un kādam nolūkam tā kalpo, vispirms ir liet­de­rī­gi apskatīt tra­di­cio­nā­lo String klasi. Kad esat dek­la­rē­jis objektu String, jūs vairs nevarat mainīt šo objektu. Ja vēlaties veikt izmaiņas, jums ir jāizveido un jāglabā pilnīgi jauns objekts. Tas rada lielu datu iz­šķēr­dē­ša­nu un var samazināt veikt­spē­ju. Ja tā vietā iz­man­to­jat StringBuil­der Java, varat veikt izmaiņas virknēs , ne­iz­vei­do­jot jaunu. Tas samazina at­kri­tu­mus un uzlabo veikt­spē­ju.

Kādi ir Java StringBuil­der kons­truk­to­ri?

Java StringBuil­der ir 4 kons­truk­to­ri, kas palīdz pārvērst virkni pareizā formātā klasē. Tie tiek izmantoti arī kon­fi­gu­rā­ci­jai. Šeit ir četri kons­truk­to­ri un to mērķi:

  • StringBuilder(): Izveido tukšu StringBuil­der ar maksimālo ka­pa­ci­tā­ti 16 rakstzī­mes
  • StringBuilder(int capacity): Izveido StringBuil­der bez rakstzī­mēm, kura maksimālā ka­pa­ci­tā­te ir definēta, iz­man­to­jot ka­pa­ci­tā­tes argumentu
  • StringBuilder(CharSequence seq): Izveido string builder ar tādiem pašiem simboliem kā sa­gla­bā­ta­jā simbolu secībā
  • StringBuilder(String str): Izveido StringBuil­der ar ievadīto virkni

Ap­ska­tī­sim piemēru, lai redzētu, kā šie kons­truk­to­ri darbojas praksē:

public class Main {
	public static void main(String[] argv) throws Exception {
	StringBuilder str = new StringBuilder();
	str.append("ABC");
	System.out.println("First constructor  = " + str.toString());
	StringBuilder str2 = new StringBuilder(5);
	System.out.println("Second constructor  = " + str2.capacity());
	StringBuilder str3 = new StringBuilder("ABCDEFGHIJK");
	System.out.println("Third constructor = " + str3.toString());
	StringBuilder str4 = new StringBuilder(str3.toString());
	System.out.println("Fourth constructor = " + str4.toString());
	}
}
java

Kad iz­man­to­jam Java komandu System.out.println, lai iegūtu rezultātu, mēs saņemam šādu rezultātu:

First constructor = ABC
Second constructor = 5
Third constructor = ABCDEFGHIJK
Fourth constructor = ABCDEFGHIJK
java

Kādas metodes tiek iz­man­to­tas ar StringBuil­der Java valodā?

Ir vairākas metodes, kuras var izmantot ar Java StringBuil­der klasi. Zemāk mēs ie­pa­zīs­ti­nām ar dažām no sva­rī­gā­ka­jām, pie­vie­no­jot koda piemērus.

append()

append() metode tiek izmantota, lai pie­vie­no­tu vienu virkni citai. Tai ir dažādi parametri. Šeit ir redzams, kā tā darbojas praksē:

public class Main {
	public static void main(String[] argv) throws Exception {
	StringBuilder str = new StringBuilder("ABCDE");
	str.append("FGHIJK");
	System.out.println(str);
	}
}
java

Rezultāts ir šāds:

ABCDEFGHIJK
java

insert()

insert() metode tiek izmantota kopā ar Java StringBuil­der, lai ievietotu virkni konkrētā vietā. Šeit ir piemērs, kā tas darbojas:

public class Main {
	public static void main(String[] argv) throws Exception {
	StringBuilder str = new StringBuilder("ABCDE");
	str.insert(1,"FGHIJK");
	System.out.println(str);
	}
}
java

Šeit ir rezultāts:

AFGHIJKBCDEFGHIJK
java

Visa skaitlis (šajā gadījumā 1) tiek izmantots, lai definētu pozīciju, kurā tiks ievietota virkne.

replace()

replace() metode aizstāj virkni vai virknes daļu. Tā ir definēta, iz­man­to­jot beginIndex un endIndex. Tā darbojas praksē:

public class Main {
	public static void main(String[] argv) throws Exception {
	StringBuilder str = new StringBuilder("ABCDE");
	str.replace(1,4,"FGHIJK");
	System.out.println(str);
	}
}
java

Rezultāts izskatās šādi:

AFGHIJKE
java

reverse()

reverse() metode tiek izmantota, lai saglabāto virkni izvietotu apgrieztā secībā. Tā darbojas šādi:

public class Main {
	public static void main(String[] argv) throws Exception {
	StringBuilder str = new StringBuilder("ABCDE");
	str.reverse();
	System.out.println(str);
	}
}
java

Šeit ir rezultāts:

EDCBA
java

delete()

Jūs varat izmantot delete() metodi ar Java StringBuil­der, lai dzēstu visu vai daļu no virknes. Ja vēlaties dzēst daļu no virknes, to var izdarīt ar beginIndex un endIndex.

public class Main {
	public static void main(String[] argv) throws Exception {
	StringBuilder str = new StringBuilder("ABCDE");
	str.delete(1,4);
	System.out.println(str);
	}
}
java

Šeit ir rezultāts:

AE
java

capacity()

capacity() metode sniedz pa­šrei­zē­jo maksimālo rakstzīm­ju skaitu StringBuil­der. Parasti tas ir 16. Ja tas tiek pa­lie­li­nāts, parasti to dara, iz­man­to­jot formulu “pa­šrei­zē­jais rakstzīm­ju skaits * 2 + 2”. Tātad, ja pašlaik tas ir 16, tas tiek reizināts ar 2 (32) un tad tam tiek pie­skai­tīts 2. To var redzēt mūsu piemērā:

public class Main {
	public static void main(String[] argv) throws Exception {
	StringBuilder str = new StringBuilder();
System.out.println(str.capacity());
str.append("ABCDE");
System.out.println(str.capacity());
	str.append("This is another example");
	System.out.println(str.capacity());
	}
}
java

Rezultāts izskatās šādi:

16
16
34
java

ensureCapacity()

ensureCapacity() metode nodrošina, ka pieejamo rakstzīm­ju skaits ir vismaz tikpat liels kā definētā vērtība. Ja tas tā nav, ka­pa­ci­tā­te tiks pa­lie­li­nā­ta, iz­man­to­jot iepriekš minēto formulu „pa­šrei­zē­jais rakstzīm­ju skaits * 2 + 2”. To var redzēt šajā piemērā:

public class Main {
	public static void main(String[] argv) throws Exception {
	StringBuilder str = new StringBuilder();
System.out.println(str.capacity());
str.append("ABCDE");
System.out.println(str.capacity());
	str.append("This is another example");
	System.out.println(str.capacity());
	str.ensureCapacity(5);
	System.out.println(str.capacity());
	str.ensureCapacity(40);
	System.out.println(str.capacity());
	}
}
java

Šeit ir rezultāts:

16
16
34
34
70
java

Vispirms redzam standarta vērtību (16), tad šo vērtību, kas reizināta ar 2 un pie­skai­tī­ta 2 (34), un vis­bei­dzot šo jauno vērtību, kas reizināta ar 2 un pie­skai­tī­ta 2.

Go to Main Menu