format()

Java String format() metodi

❮ String metodlari


Misol

Formatlangan string qaytaring:

String myStr = "Hello %s! One kilobyte is %,d bytes.";
String result = String.format(myStr, "World", 1024);
System.out.println(result);

O‘zingiz sinab ko‘ring »

Eslatma: Boshqa "O‘zingiz sinab ko‘ring" misollarini ushbu sahifaning pastki qismida topasiz.


ULASHISH

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.
  • .precision Ixtiyoriy. 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 x yoki X belgisidan foydalaning.

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:

  • H - soatning 24 soatlik formati (00 dan 23 gacha)
  • I - soatning 12 soatlik formati (01 dan 12 gacha)
  • k - soatning 24 soatlik formati (0 dan 23 gacha)
  • l (kichik 'L' harfi) - soatning 12 soatlik formati (1 dan 12 gacha)
  • M - boshida nol bilan yozilgan daqiqalar (00 dan 59 gacha)
  • S - boshida nol bilan yozilgan soniyalar (00 dan 59 gacha) (kabisa soniyalari uchun 60 qiymati ham uchrashi mumkin)
  • L - boshida nollar bilan yozilgan millisoniyalar (000 dan 999 gacha)
  • N - boshida nollar bilan yozilgan nanosoniyalar (000000000 dan 999999999 gacha)
  • p - tushgacha yoki tushdan keyinni bildiruvchi "am", "pm", "AM" yoki "PM"
  • z - Grinvich vaqtiga nisbatan farq (Misol: -0800)
  • Z - vaqt mintaqasi qisqartmalari (Misollar: EST, MDT)
  • s - Unix davri boshidan (1970-yil 1-yanvar 00:00:00 GMT) beri o‘tgan soniyalar
  • Q - Unix davri boshidan (1970-yil 1-yanvar 00:00:00 GMT) beri o‘tgan millisoniyalar
  • B - oyning to‘liq matnli ko‘rinishi (January dan December gacha)
  • b yoki h - oyning qisqa matnli ko‘rinishi (uch harf)
  • A - hafta kunining to‘liq matnli ko‘rinishi (Misol: Monday)
  • a - hafta kunining qisqa matnli ko‘rinishi (Misol: Mon)
  • C - yilning dastlabki ikki raqami (1970 uchun "19" ko‘rsatiladi)
  • Y - yilning to‘rt xonali ko‘rinishi
  • y - yilning ikki xonali ko‘rinishi
  • j - boshida nollar bilan yozilgan yilning kuni (001 dan 366 gacha)
  • m - oyning raqamli ko‘rinishi (01 dan 12 gacha)
  • d - oyning kuni (01 dan 31 gacha)
  • e - boshida nolsiz yozilgan oyning kuni (1 dan 31 gacha)
  • R - 24 soatlik formatdagi vaqt (Misol: 21:30)
  • T - 24 soatlik formatdagi, soniyalari bilan vaqt (Misol: 21:30:02)
  • r - 12 soatlik formatdagi, soniyalari bilan vaqt (Misol: 09:30:02 PM) ("AM" va "PM" har doim katta harflarda)
  • D - oy/kun/yil ko‘rinishidagi sana (Misol: 12/17/23)
  • F - yil-oy-kun ko‘rinishidagi sana (Misol: 2023-12-17)
  • c - to‘liq sana va vaqt (Misol: Thu Mar 28 10:51:00 EDT 2024)


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)
  • 3 ma’lumot ko‘rinishi kamida 3 belgi uzunlikda bo‘lishi kerakligini bildiradi
  • .2 o‘nlik nuqtadan keyin ikki raqam bo‘lishi kerakligini bildiradi
  • f ma’lumot suzuvchi nuqtali son sifatida ifodalanishini bildiradi

O‘zingiz sinab ko‘ring »

Misol

Argumentlardan boshqa tartibda foydalaning:

String result = String.format("%3$c %2$c %1$c", 'a', 'b', 'c');
System.out.println(result);

O‘zingiz sinab ko‘ring »

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);

O‘zingiz sinab ko‘ring »

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);

O‘zingiz sinab ko‘ring »

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);

O‘zingiz sinab ko‘ring »


❮ String metodlari

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!