STRING STATINIAI METODAI
Java String format() metodas
String.format() sukuria suformatuotą tekstą pagal šabloną. Šablone pažymimos vietos, į kurias Java įterpia tekstus, skaičius ir kitas reikšmes.
Pirmasis formatuotas tekstas
String vardas = "Ieva";
int taskai = 18;
String zinute = String.format("%s surinko %d taškų.", vardas, taskai);
System.out.println(zinute);Ieva surinko 18 taškų.
%syra vieta tekstinei reikšmei.%dyra vieta sveikajam dešimtainiam skaičiui.- Po šablono perduodami argumentai
vardasirtaskai. - Java pirmą argumentą įterpia į pirmą žymeklį, antrą – į antrą.
format()grąžina naująString, kuris išsaugomas kintamajamezinute.
Metodo sintaksė
String.format(String format, Object... args)
String.format(Locale locale, String format, Object... args)
| Parametras | Paskirtis |
|---|---|
locale | Pasirenkama kalbos ir regiono taisyklė skaičiams bei kitoms lokalizuojamoms reikšmėms. |
format | Teksto šablonas su paprastu tekstu ir formato žymekliais. |
args | Viena ar daugiau reikšmių, kurios įterpiamos į žymeklių vietas. |
| Grąžinama reikšmė | Naujas suformatuotas String. |
Trys taškai Object... reiškia, kad metodui galima perduoti skirtingą argumentų skaičių.
Dažniausi formato žymekliai
| Žymeklis | Reikšmė | Pavyzdys |
|---|---|---|
%s | Tekstas arba objekto tekstinė išraiška | "Rūta" |
%d | Sveikasis dešimtainis skaičius | 42 |
%f | Slankiojo kablelio skaičius | 3.500000 |
%b | Loginė išraiška | true |
%c | Vienas simbolis | 'A' |
%% | Paprastas procento ženklas | % |
%n | Nauja eilutė pagal operacinę sistemą | Eilutės lūžis |
Pavyzdžiui, perdavus tekstą ten, kur šablonas tikisi %d, vykdymo metu įvyksta IllegalFormatConversionException.
Skaitmenų po kablelio skaičius
import java.util.Locale;
double kaina = 3.5;
String tekstas = String.format(Locale.US, "Kaina: %.2f Eur", kaina);
System.out.println(tekstas);Kaina: 3.50 Eur
Žymeklis %.2f reiškia slankiojo kablelio skaičių su dviem skaitmenimis po kablelio. Locale.US šiame mokomajame pavyzdyje aiškiai nustato tašką kaip dešimtainį skirtuką.
Naudojant numatytą Lietuvos lokalę ta pati reikšmė gali būti rodoma kaip 3,50. Naudotojui skirtame tekste tai dažnai yra pageidaujama.
Plotis ir lygiavimas
String pirma = String.format("|%-10s|%4d|", "Duona", 2);
String antra = String.format("|%-10s|%4d|", "Obuoliai", 12);
System.out.println(pirma);
System.out.println(antra);|Duona | 2|
|Obuoliai | 12|
%-10sskiria tekstui dešimt pozicijų ir lygiuoja jį kairėje.%4dskiria skaičiui keturias pozicijas ir lygiuoja jį dešinėje.- Vertikalūs brūkšniai nėra formato dalis – jie pridėti, kad būtų lengviau pamatyti laukų ribas.
Procento ženklas ir nauja eilutė
String tekstas = String.format("Nuolaida: 20%%%nLiko: %d vnt.", 4);
System.out.print(tekstas);Nuolaida: 20%
Liko: 4 vnt.
Kadangi vienas % pradeda formato žymeklį, paprastam procento ženklui rašoma %%. Žymeklis %n įterpia tai operacinei sistemai tinkamą naujos eilutės seką.
format() pats nieko nespausdina
String zinute = String.format("Labas, %s!", "Rūta");
// format() tik sukūrė tekstą; rodome jį atskirai
System.out.println(zinute);Labas, Rūta!
String.format() tik sukuria ir grąžina tekstą. Rezultatą galima išsaugoti, perduoti metodui, grąžinti iš metodo ar vėliau išspausdinti.
String.format() ir printf()
String tekstas = String.format("Kiekis: %d", 5);
System.out.println(tekstas);
System.out.printf("Kiekis: %d%n", 5);Kiekis: 5
Kiekis: 5
| Metodas | Elgesys |
|---|---|
String.format() | Grąžina naują String, bet jo nespausdina. |
System.out.printf() | Iš karto siunčia suformatuotą rezultatą į konsolę. |
Dažnos klaidos
- Žymeklių ir argumentų tvarka nesutampa.
- Žymekliui perduodamas netinkamo tipo argumentas.
- Pamirštama, kad
format()grąžina rezultatą ir pats jo nerodo. - Procento ženklas parašomas kaip
%vietoje%%. - Finansiniams skaičiavimams formatavimas naudojamas vietoje tikslaus skaičių tipo; formatavimas pakeičia vaizdą, o ne skaičiavimo tikslumą.

