STRING STATINIAI METODAI
Java String join() metodas
String.join() sujungia kelias teksto reikšmes į vieną String ir tarp jų įterpia pasirinktą skirtuką. Tai patogus būdas kurti sąrašus, eilutes eksportui ar aiškiai suformatuotą tekstą.
Pirmasis sujungimas
String rezultatas = String.join(", ", "Java", "Spring", "SQL");
System.out.println(rezultatas);Java, Spring, SQL
- Pirmas argumentas
", "yra skirtukas. - Po skirtuko perduodamos reikšmės, kurias reikia sujungti.
- Java įterpia skirtuką tik tarp reikšmių, ne pradžioje ir ne pabaigoje.
join()grąžina naująString, todėl rezultatą galima išsaugoti kintamajame.
Kodėl join() yra statinis metodas?
join() kviečiamas per klasės pavadinimą String, nes metodui nereikia vieno konkretaus jau sukurto teksto objekto. Jis gauna skirtuką ir reikšmes kaip argumentus:
String tekstas = String.join(", ", "A", "B", "C");
Kairėje esantis String yra grąžinamos reikšmės tipas. String prieš tašką yra klasė, kuriai priklauso statinis metodas.
Metodo sintaksė
| Sintaksė | Paskirtis |
|---|---|
String.join(CharSequence delimiter, CharSequence... elements) | Sujungia kelias atskirai perduotas reikšmes. |
String.join(CharSequence delimiter, Iterable<? extends CharSequence> elements) | Sujungia reikšmes iš kolekcijos, pavyzdžiui, List<String>. |
Abi versijos grąžina naują String. CharSequence reiškia, kad metodas gali priimti ne tik String, bet ir kitus tekstą aprašančius tipus, pavyzdžiui, StringBuilder.
Skirtukas valdo rezultatą
String suKableliu = String.join(", ", "obuoliai", "bananai", "kriaušės");
String suBruksniu = String.join(" - ", "pirmas", "antras", "trečias");
String beTarpu = String.join("", "J", "a", "v", "a");
System.out.println(suKableliu);
System.out.println(suBruksniu);
System.out.println(beTarpu);obuoliai, bananai, kriaušės
pirmas - antras - trečias
Java
", "sukuria įprastą kableliais atskirtą sąrašą." - "tinka tekstui, kuriame norisi aiškesnio vizualaus atskyrimo.- Tuščias skirtukas
""sujungia tekstus be jokio tarpo tarp jų.
Kolekcijos sujungimas
import java.util.List;
List temos = List.of("kintamieji", "ciklai", "metodai");
String tekstas = String.join(" | ", temos);
System.out.println(tekstas);kintamieji | ciklai | metodai
Kai reikšmės jau saugomos kolekcijoje, jų nereikia rankiniu būdu imti po vieną. String.join() gali pereiti per Iterable reikšmes ir sudėti jas į vieną tekstą ta pačia tvarka.
Tuščias arba vieno elemento sąrašas
String tuscias = String.join(", ");
String vienas = String.join(", ", "Java");
System.out.println("[" + tuscias + "]");
System.out.println("[" + vienas + "]");[]
[Java]
- Kai nėra nė vieno jungiamo elemento, rezultatas yra tuščias tekstas.
- Kai yra vienas elementas, grąžinamas tas elementas be skirtuko.
- Skirtukas atsiranda tik tarp dviejų gretimų elementų.
Kas nutinka su null?
String tekstas = String.join(", ", "Java", null, "SQL");
System.out.println(tekstas);Java, null, SQL
Jei vienas iš jungiamų elementų yra null, Java į rezultatą įrašo tekstą null. Tai gali būti naudinga diagnostikai, bet naudotojui skirtame tekste dažnai geriau tokias reikšmes iš anksto pakeisti arba pašalinti.
Skirtukas negali būti null
String tekstas = String.join(null, "Java", "SQL");
System.out.println(tekstas);NullPointerException
Pirmasis argumentas yra privalomas skirtukas. Jei jis yra null, metodas negali nuspręsti, ką įterpti tarp reikšmių, todėl vykdymo metu įvyksta NullPointerException.
join() vietoje rankinio jungimo
String pirmas = "Java";
String antras = "Spring";
String trecias = "SQL";
String rankiniuBudu = pirmas + ", " + antras + ", " + trecias;
String suJoin = String.join(", ", pirmas, antras, trecias);
System.out.println(rankiniuBudu);
System.out.println(suJoin);Java, Spring, SQL
Java, Spring, SQL
Kai sujungiamos dvi ar trys aiškios reikšmės, + operatorius yra suprantamas. Kai reikšmių daugiau arba jos ateina iš kolekcijos, String.join() sumažina pasikartojimą ir padeda išvengti papildomo kablelio pabaigoje.
Kai reikia pradžios ir pabaigos simbolių
import java.util.StringJoiner;
StringJoiner joiner = new StringJoiner(", ", "[", "]");
joiner.add("Java");
joiner.add("Spring");
joiner.add("SQL");
System.out.println(joiner.toString());[Java, Spring, SQL]
String.join() moka įterpti skirtuką tarp elementų, bet neturi atskirų parametrų pradžios ir pabaigos tekstui. Kai reikia prefikso ir sufikso, patogu naudoti StringJoiner.
Dažnos klaidos
- Pamirštama, kad pirmasis argumentas yra skirtukas, o ne pirmas sąrašo elementas.
- Skirtukas perduodamas kaip
null, todėl gaunamasNullPointerException. - Tikimasi, kad
nullelementai bus praleisti, nors jie įrašomi kaip tekstas null. - Bandoma perduoti kolekciją, kurios elementai nėra
CharSequencetipo. - Naudojamas
join(), kai reikia sudėtingesnio formatavimo; tokiu atveju gali labiau tiktiString.format(),StringJoinerarba stream operacijos.
Kada naudoti String.join()?
String.join() rinkis tada, kai turi kelias tekstines reikšmes ir nori jas sujungti vienodu skirtuku. Metodas ypač tinka meniu punktams, žymoms, CSV tipo eilutėms, paprastiems sąrašams ir kolekcijų pavertimui į žmogui skaitomą tekstą.

