printf()
Java chiqarish printf() metodi
Misol
Konsolga formatlangan matn chiqaring.
%s belgisi "World" stringi uchun joy egasi hisoblanadi:
System.out.printf("Hello %s!", "World");
Eslatma: Boshqa "O‘zingiz sinab ko‘ring" misollarini ushbu sahifaning pastki qismida topasiz.
Ta’rif va qo‘llanilishi
printf() metodi formatlangan stringni chiqaradi.
Qo‘shimcha argumentlardagi ma’lumotlar formatlanadi va formatlangan stringdagi % belgisi bilan belgilangan joy egalariga 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.+- 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.
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. |
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. |
s yoki S |
String | Argumentning standart string ko‘rinishini chiqaradi. Agar "S" ishlatilsa, string imkon qadar katta harflarga o‘giriladi. |
d |
O‘nlik butun son | Butun sonni o‘nlik butun son sifatida ifodalaydi. |
h yoki H |
Ishorasiz o‘n oltilik butun son | Argumentning ikkilik ma’lumotlarini ishorasiz o‘n oltilik butun son sifatida ifodalaydi. Agar "H" ishlatilsa, A dan F gacha bo‘lgan raqamlar katta harflarda ko‘rsatiladi. Eslatma: Musbat butun sonlardan boshqa har qanday ma’lumot uchun bu uning haqiqiy qiymatini ifodalamaydi. |
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
System.out.printf(locale, formatString, 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. |
| formatString | Majburiy. Qo‘shimcha argumentlarni qanday formatlashni bildiruvchi joy egalarini o‘z ichiga olgan string |
| args | Ixtiyoriy. Metodga uzatiladigan istalgan miqdordagi qo‘shimcha argumentlar; ularning qiymatlari formatlanib, formatString ichida ko‘rsatilishi mumkin. |
Texnik tafsilotlar
| Qaytaradi: | PrintStream obyekti. |
|---|---|
| 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
String va butun sonni o‘z ichiga olgan formatlangan matnni chiqaring:
System.out.printf("Hello %s! One kilobyte is %,d bytes.", "World", 1024);
Misol
Suzuvchi nuqtali sonni turli usullarda formatlang:
// Default
System.out.printf("%f%n", 123456.78);
// Two decimal digits
System.out.printf("%.2f%n", 123456.78);
// No decimal digits
System.out.printf("%.0f%n", 123456.78);
// No decimal digits but keep the decimal point
System.out.printf("%#.0f%n", 123456.78);
// Group digits
System.out.printf("%,.2f%n", 123456.78);
// Scientific notation with two digits of precision
System.out.printf("%.2e", 123456.78);
Misol
Barcha komponentlardan foydalanadigan joy egasi:
System.out.printf("%2$,3.2f %1$s", "meters", 1260.5052);
%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:
System.out.printf("%3$c %2$c %1$c", 'a', 'b', 'c');
Misol
Unix vaqt belgisidan (timestamp) sanani formatlang:
long date = 1711638903488L; // Unix timestamp (number of milliseconds since January 1, 1970)
// Time
System.out.printf("%tl:%<tM %<tp%n", date);
// Month and day
System.out.printf("%tB %<te%n", date);
// Full date representation
System.out.printf("%tc%n", date);
Misol
Belgilarni ularning Unicode kod nuqtalari orqali ifodalang:
// Represent characters from their unicode code points
System.out.printf("%c%c%c%c%c%n", 72, 101, 108, 108, 111);
// Force unicode characters to uppercase
System.out.printf("%C%C%C%C%C", 72, 101, 108, 108, 111);
❮ Chiqarish metodlari
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
