printf()
می خواهی خروجی مرتب و شیک بدهی؟ با printf جاوا می توانی متن را قالب بندی کنی. قالب بندی یعنی جای گذاری مقادیر داخل الگو با علامت درصد %.
تعریف و روش کار
متد printf() یک رشته قالب بندی شده چاپ می کند. داده ها در جای نگهدارها (Placeholder) با علامت % می نشینند.
مثال شروع سریع
System.out.printf("Hello %s!", "World");
جای نگهدارها
فرم کلی: %[arg$][flags][width][.precision]conversion. قسمت های داخل [] اختیاری هستند.
سینتکس متد
System.out.printf(locale, formatString, args);
نکته: اگر الگو نامعتبر باشد، IllegalFormatException رخ می دهد.
نمونه ها از منبع
رشته و عدد صحیح
System.out.printf("Hello %s! One kilobyte is %,d bytes.", "World", 1024);
قالب های مختلف برای اعشاری
// 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);
جای نگهدار کامل
System.out.printf("%2$,3.2f %1$s", "meters", 1260.5052);
تغییر ترتیب آرگومان ها
System.out.printf("%3$c %2$c %1$c", 'a', 'b', 'c');
تاریخ از یونیکس تایم استمپ
long date = 1711638903488L; // Unix timestamp (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);
کاراکترهای یونیکد
// 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);
گام های عملی
- یک الگو با
%بنویس. - آرگومان های مناسب را پشت الگو بده.
- اگر خط جدید خواستی، از
%nاستفاده کن.
هشدار: نوع جای نگهدار با نوع داده باید سازگار باشد.
همچنین برای چاپ ساده از print() و برای خط جدید از println() استفاده کن. فهرست کامل در روش های خروجی است.
جمع بندی سریع
printf()خروجی قالب بندی شده می دهد.%جای نگهدار مقادیر است.%nخط جدید ایجاد می کند.- عدم سازگاری فرمت خطا می دهد.