JAVA STRING
Java String konkatenacija
Konkatenacija – tai dviejų ar daugiau teksto eilučių sujungimas į vieną. Java kalboje tekstą galima jungti operatoriumi +, metodu concat() arba tam skirtomis pagalbinėmis klasėmis.
Teksto jungimas operatoriumi +
Pradedant mokytis patogiausia naudoti +. Java paima reikšmes iš kairės į dešinę ir sujungia jas į naują tekstą.
String vardas = "Ieva";
String pasisveikinimas = "Labas, " + vardas + "!";
System.out.println(pasisveikinimas);Labas, Ieva!
- Kintamajame
vardassaugomas tekstasIeva. - Operatorius
+sujungia pasisveikinimą, vardą ir šauktuką. - Rezultatas išsaugomas naujame kintamajame
pasisveikinimas.
Tarpus reikia pridėti pačiam
Java automatiškai neįterpia tarpo tarp sujungiamų žodžių. Tarpą įrašome kaip atskirą eilutę " ".
String vardas = "Mantas";
String pavarde = "Kazlauskas";
String pilnasVardas = vardas + " " + pavarde;
System.out.println(pilnasVardas);Mantas Kazlauskas
Be viduryje esančio " " konsolėje matytume MantasKazlauskas.
Teksto jungimas su skaičiais
Kai bent viena iš + operacijos reikšmių yra String, Java skaičius paverčia tekstu.
String preke = "Obuoliai";
int kiekis = 3;
double kaina = 1.25;
System.out.println(preke + ": " + kiekis + " kg");
System.out.println("Kaina: " + kaina + " Eur");Obuoliai: 3 kg
Kaina: 1.25 Eur
Skaičių kintamieji lieka skaičiais. Jie paverčiami tekstu tik kuriant galutinę išvedamą eilutę.
Skliaustai pakeičia veiksmų tvarką
int pirmas = 4;
int antras = 6;
System.out.println("Suma: " + pirmas + antras);
System.out.println("Suma: " + (pirmas + antras));Suma: 46
Suma: 10
- Pirmoje eilutėje Java jau rado tekstą
"Suma: ", todėl4ir6prijungia kaip simbolius. - Antroje eilutėje skliaustai liepia pirmiausia apskaičiuoti
4 + 6. - Tik gautas skaičius
10prijungiamas prie teksto.
Metodas concat()
concat() prie vienos eilutės pabaigos prijungia kitą String reikšmę ir grąžina naują eilutę.
String pradzia = "Geros";
String pabaiga = " dienos!";
String sakinys = pradzia.concat(pabaiga);
System.out.println(sakinys);Geros dienos!
Skirtingai nuo +, metodas concat() priima tik tekstinę reikšmę.
String reikšmės yra nekintamos
Konkatenacija nepakeičia seno String objekto. Ji sukuria ir grąžina naują rezultatą, kurį reikia išsaugoti.
String tekstas = "Labas";
tekstas.concat(", Rasa");
System.out.println(tekstas);
tekstas = tekstas.concat(", Rasa");
System.out.println(tekstas);Labas
Labas, Rasa
- Pirmas
concat()sukuria rezultatą, bet jis niekur neišsaugomas. - Todėl pirmas
println()vis dar išveda tik Labas. - Antras rezultatas priskiriamas kintamajam
tekstas, todėl vėliau matome visą pasisveikinimą.
Daug teksto pakeitimų su StringBuilder
Kai tekstas papildomas daug kartų, ypač cikle, patogiau naudoti append().
String[] pirkiniai = {"duona", "pienas", "obuoliai"};
StringBuilder sarasas = new StringBuilder("Pirkiniai: ");
for (int i = 0; i < pirkiniai.length; i++) {
if (i > 0) {
sarasas.append(", ");
}
sarasas.append(pirkiniai[i]);
}
System.out.println(sarasas);Pirkiniai: duona, pienas, obuoliai
StringBuilder papildo tą patį kuriamą tekstą, todėl tinka daugeliui nuoseklių sujungimų.
Reikšmių jungimas su String.join()
Jei tarp visų reikšmių reikia tokio pat skirtuko, galima naudoti String.join().
String dienos = String.join(", ",
"pirmadienis", "antradienis", "trečiadienis");
System.out.println(dienos);pirmadienis, antradienis, trečiadienis
Pirmas argumentas ", " nurodo, ką Java turi įrašyti tarp kiekvienos reikšmės.
Kurį būdą pasirinkti?
| Būdas | Kada patogu naudoti? |
|---|---|
+ | Kelioms reikšmėms ir lengvai skaitomam kasdieniam kodui |
concat() | Kai sąmoningai jungiamos tik String reikšmės |
StringBuilder | Kai tekstas papildomas daug kartų arba cikle |
String.join() | Kai reikšmes skiria vienodas tarpas, kablelis ar kitas skirtukas |

