format()
Java String format() metodi
Misol
Formatlangan string qaytaring:
String myStr = "Hello %s! One kilobyte is %,d bytes.";
String result = String.format(myStr, "World", 1024);
System.out.println(result);
Eslatma: Boshqa "O‘zingiz sinab ko‘ring" misollarini ushbu sahifaning pastki qismida topasiz.
Ta’rif va qo‘llanilishi
format() metodi lokal, format va qo‘shimcha argumentlar yordamida formatlangan string qaytaradi.
Agar bu metodga lokal uzatilmasa, Locale.getDefault() qaytaradigan lokal ishlatiladi.
Qo‘shimcha argumentlardagi ma’lumotlar formatlanadi va format stringidagi % belgisi bilan belgilangan joy egalariga (placeholder) yoziladi. Argumentlarning qanday formatlanishi % belgisidan keyin keladigan belgilar ketma-ketligiga bog‘liq.
Joy egalari (placeholders)
Joy egalari %[arg$][flags][width][.precision]conversion ko‘rinishiga ega. [Kvadrat qavslar] ichidagi komponentlar ixtiyoriy.
Har bir komponentning izohi:
arg$- Ixtiyoriy. Qo‘shimcha argumentlardan qaysi biri ishlatilishini ko‘rsatadigan, ortidan $ belgisi keladigan son; argumentlar raqami 1 dan boshlanadi. Uning o‘rniga oldingi joy egasidagi argument ishlatilishini bildiruvchi<belgisini qo‘yish mumkin.flags- Ixtiyoriy. Quyidagi belgilarning istalganidan iborat ketma-ketlik:-- To‘ldiruvchi bo‘sh joylarni chap tomon o‘rniga o‘ng tomonga qo‘shib, natijani chapga tekislaydi.#- Konversiyaga qarab formatlangan ma’lumotning muqobil ko‘rinishini ko‘rsatadi.+- Musbat sonlar oldiga har doim "+" belgisi qo‘yilishini ta’minlaydi.- (Bo‘sh joy belgisi) Musbat sonlar oldiga bo‘sh joy qo‘shadi; bu asosan ularning raqamlarini manfiy sonlar raqamlari bilan bir chiziqqa tekislash uchun kerak.0- Sonlarni chap tomondan nollar bilan to‘ldiradi.,- Raqamlarni guruhlaydi (masalan, minglar bo‘yicha) va guruhlar orasiga ajratuvchi qo‘yadi. Bunga lokal ta’sir qiladi.(- Manfiy sonlarni qavs ichiga oladi.
width- Ixtiyoriy. Natija egallashi kerak bo‘lgan eng kam belgilar sonini belgilovchi butun son. Zarur bo‘lsa, shu songa yetkazish uchun chap tomonga,-bayrog‘i ishlatilganda esa o‘ng tomonga bo‘sh joylar qo‘shiladi..precisionIxtiyoriy. Formatlangan ma’lumotda kasr qismidan nechta raqam ko‘rsatilishini bildiruvchi, ortidan butun son keladigan.belgisi.conversion- Majburiy. Argument ma’lumotlari qanday ko‘rinishda ifodalanishini bildiruvchi belgi. Agar belgi katta harf bo‘lsa, ma’lumotlar imkon qadar katta harflarda formatlanadi. Mumkin bo‘lgan belgilar ro‘yxati quyidagi jadvalda keltirilgan.
Konversiyalar ro‘yxati
| Character | Konversiya | Tavsif |
|---|---|---|
% |
Foiz | Natijada "%" belgisini aynan o‘zicha chiqaradi. |
n |
Yangi qator | Natijada qator uzilishini (yangi qatorni) chiqaradi. |
b yoki B |
Boolean | Argumentning boolean qiymatini "true" yoki "false" ko‘rinishida chiqaradi. Agar "B" ishlatilsa, buning o‘rniga "TRUE" yoki "FALSE" chiqaradi. |
h yoki H |
O‘n oltilik sanoq tizimidagi hash kod | Argumentning hash kodini uning hashCode() qiymati yordamida o‘n oltilik sanoq tizimida chiqaradi. Agar H ishlatilsa, A dan F gacha bo‘lgan harflar katta harflarda ko‘rsatiladi.Eslatma: Bu sonni o‘n oltilik butun son sifatida formatlamaydi. O‘n oltilik butun son sifatida formatlash uchun |
s yoki S |
String | Argumentning standart string ko‘rinishini chiqaradi. Agar "S" ishlatilsa, string imkon qadar katta harflarga o‘giriladi. |
c yoki C |
Unicode belgisi | Argumentni Unicode belgisi ko‘rinishida chiqaradi. Butun sonlar uchun bu songa mos keladigan Unicode belgisi bo‘ladi. Agar "C" ishlatilsa, belgi imkon qadar katta harfga o‘giriladi. |
d |
O‘nlik butun son | Butun sonni o‘nlik butun son sifatida ifodalaydi. |
o |
Sakkizlik butun son | Butun sonni sakkizlik butun son sifatida ifodalaydi. "#" bayrog‘i son oldiga "0" qo‘shadi. |
x yoki X |
O‘n oltilik butun son | Butun sonni o‘n oltilik butun son sifatida ifodalaydi. "#" bayrog‘i son oldiga "0x" qo‘shadi. Agar "X" ishlatilsa, A dan F gacha bo‘lgan raqamlar va X harfi katta harfda ko‘rsatiladi. |
e yoki E |
Ilmiy yozuv | Suzuvchi nuqtali sonni ilmiy yozuvda ifodalaydi. Agar "E" ishlatilsa, ifodadagi "E" harfi katta harfda bo‘ladi. "#" bayrog‘i kasr raqamlari bo‘lmasa ham o‘nlik nuqtani majburan qo‘yadi. |
f |
Suzuvchi nuqtali son | Suzuvchi nuqtali sonni ifodalaydi. "#" bayrog‘i kasr raqamlari bo‘lmasa ham o‘nlik nuqtani majburan qo‘yadi. |
g yoki G |
Umumiy son | Suzuvchi nuqtali son uchun f hamda e yoki E ko‘rinishlaridan eng qisqasini chiqaradi. |
a yoki A |
O‘n oltilik suzuvchi nuqtali son | Suzuvchi nuqtali sonning ichki ko‘rinishini o‘n oltilik raqamlar bilan chiqaradi. |
t yoki T |
Vaqt yoki sana | Formatlangan sana yoki vaqtni chiqaradi. t yoki T dan keyin sana yoki vaqt qanday formatlanishi kerakligini bildiruvchi yana bitta belgi kelishi shart. Agar "T" ishlatilsa, sana yoki vaqtning "JANUARY" kabi matnli qismlari katta harflarda bo‘ladi. Sana va vaqtni formatlash uchun quyidagi belgilardan foydalanish mumkin:
|
Sintaksis
Quyidagilardan biri:
public static String format(Locale locale, String format, Object... args)
public static String format(String format, Object... args)
Parametr qiymatlari
| Parametr | Tavsif |
|---|---|
| locale | Ixtiyoriy. Formatlashning ayrim jihatlarini, masalan, o‘nlik nuqta va guruh ajratuvchilari uchun qaysi belgilar ishlatilishini aniqlashda qo‘llaniladigan lokal. |
| format | Majburiy. Qaytariladigan string; unda qo‘shimcha argumentlarni qanday formatlashni bildiruvchi joy egalari bo‘lishi mumkin. |
| args | Ixtiyoriy. Metodga uzatiladigan istalgan miqdordagi qo‘shimcha argumentlar; ularning qiymatlari formatlanib, qaytariladigan stringda ko‘rsatilishi mumkin. |
Texnik tafsilotlar
| Qaytaradi: | Ko‘rsatilgan lokal, format va argumentlar yordamida formatlangan String qiymat. |
|---|---|
| Istisno chiqaradi: | IllegalFormatException - agar format stringida noto‘g‘ri joy egasi bo‘lsa yoki joy egasi argumentning ma’lumot tipiga mos kelmasa. |
| Java versiyasi: | 1.5 |
Ko‘proq misollar
Misol
Barcha komponentlardan foydalanadigan joy egasi:
String result = String.format("%2$,3.2f %1$s", "meters", 1260.5052);
System.out.println(result);
%2$,3.2f joy egasining har bir qismi quyidagicha ishlaydi:
2$ikkinchi argument qiymati ishlatilishini bildiradi,raqamlar guruhlanishi kerakligini bildiradi (odatda minglar bo‘yicha)3ma’lumot ko‘rinishi kamida 3 belgi uzunlikda bo‘lishi kerakligini bildiradi.2o‘nlik nuqtadan keyin ikki raqam bo‘lishi kerakligini bildiradifma’lumot suzuvchi nuqtali son sifatida ifodalanishini bildiradi
Misol
Argumentlardan boshqa tartibda foydalaning:
String result = String.format("%3$c %2$c %1$c", 'a', 'b', 'c');
System.out.println(result);
Misol
Suzuvchi nuqtali sonni formatlang:
double myNumber = 123456.78;
String result;
// Default
result = String.format("%f", myNumber);
System.out.println(result);
// Two decimal digits
result = String.format("%.2f", myNumber);
System.out.println(result);
// No decimal digits
result = String.format("%.0f", myNumber);
System.out.println(result);
// No decimal digits but keep the decimal point
result = String.format("%#.0f", myNumber);
System.out.println(result);
// Group digits
result = String.format("%,.2f", myNumber);
System.out.println(result);
// Scientific notation with two digits of precision
result = String.format("%.2e", myNumber);
System.out.println(result);
Misol
Unix vaqt belgisidan (timestamp) sanani formatlang:
long date = 1711638903488L; // Unix timestamp (number of milliseconds since January 1, 1970)
String result
// Time
result = String.format("%tl:%<tM %<tp", date);
System.out.println(result);
// Month and day
result = String.format("%tB %<te", date);
System.out.println(result);
// Full date representation
result = String.format("%tc", date);
System.out.println(result);
Misol
Belgilarni ularning Unicode kod nuqtalari orqali ifodalang:
String result;
// Represent characters from their unicode code points
result = String.format("%c%c%c%c%c", 72, 101, 108, 108, 111);
System.out.println(result);
// Force unicode characters to uppercase
result = String.format("%C%C%C%C%C", 72, 101, 108, 108, 111);
System.out.println(result);
❮ String metodlari
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
