เราทุกคนรู้ดีว่าบางครั้งโปรแกรมจำเป็นต้องจัดรูปแบบตัวเลข ดังนั้นการจัดรูปแบบตัวเลขคืออะไร การจัดรูปแบบดิจิทัล ที่เรียกว่าคือการรับสตริงตามรูปแบบที่ระบุ
ตัวอย่างเช่น สมมติว่าเราต้องการให้ 3.141592 เก็บทศนิยมไว้ 2 ตำแหน่ง ดังนั้นสตริงที่จัดรูปแบบแล้วควรเป็น 3.14 หากเราต้องการให้จำนวนเต็ม 123456789 ถูกจัดกลุ่มด้วย "พัน" ดังนั้นสตริงที่จัดรูปแบบแล้วควรเป็น 123,456,789 ถ้าเราต้องการ ตัวเลข 12.3456 เพื่อรักษาทศนิยม 3 ตำแหน่ง ส่วนจำนวนเต็มต้องแสดงอย่างน้อย 3 หลัก จากนั้นสตริงที่จัดรูปแบบที่ได้รับควรเป็น 012.346
ก่อน JDK 1.5 โปรแกรมจำเป็นต้องใช้คลาสที่เกี่ยวข้องในแพ็คเกจ java.text เช่น คลาส DecimalFormat เพื่อจัดรูปแบบข้อมูลตัวเลข เวอร์ชัน JDK 1.5 มี คลาส Formatter ที่สะดวกกว่า คลาส Formatter มีวิธีการจัดรูปแบบคล้ายกับฟังก์ชัน printf ภาษา C:
รูปแบบ (โหมดรูปแบบ รายการค่า)
เมธอดนี้ส่งคืนการแสดงสตริงของ "รายการค่า" ตาม "โหมดการจัดรูปแบบ"
ปัจจุบัน Java ได้สร้างวิธีการจัดรูปแบบเป็นวิธีการคงที่ของคลาส String ดังนั้นโปรแกรมจึงสามารถใช้คลาส String ได้โดยตรงเพื่อเรียกวิธีการจัดรูปแบบเพื่อจัดรูปแบบตัวเลข
"โหมดการจัดรูปแบบ" ในวิธีการจัดรูปแบบคือลำดับอักขระที่อยู่ในเครื่องหมายคำพูดคู่ นั่นคือ สตริง อักขระในลำดับอักขระนี้ประกอบด้วยอักขระรูปแบบและอักขระธรรมดา
ตัวอย่างเช่น: %d และ %f ในผลลัพธ์เอาต์พุต %d, %f, %d เป็นอักขระรูปแบบจีนสี่ตัวแรกและเครื่องหมายจุลภาคสองตัวที่อยู่ตรงกลางเป็นอักขระธรรมดา ควรสังเกตว่าสิ่งใดก็ตามที่ไม่ใช่ a สัญลักษณ์รูปแบบถือเป็นอักขระธรรมดา นักเรียนสามารถอ้างถึงคลาส java.util.Formatter ใน Java API เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับอักขระรูปแบบ สตริงที่ส่งคืนโดยวิธีการจัดรูปแบบคือสตริงหลังจากอักขระรูปแบบใน "โหมดการจัดรูปแบบ" ถูกแทนที่ด้วยผลลัพธ์ที่จัดรูปแบบที่ได้รับ เช่น:
Strings=String.format(%.2f,3.141592);
จากนั้น s คือ 3.14 เนื่องจากผลลัพธ์ของ %.2f การจัดรูปแบบ 3.141592 คือ 3.14
"รายการค่า" ในวิธีการจัดรูปแบบคือรายการตัวแปร ค่าคงที่ หรือนิพจน์ที่คั่นด้วยเครื่องหมายจุลภาค ตรวจสอบให้แน่ใจว่าจำนวนอักขระรูปแบบใน "โหมดรูปแบบ" ของวิธีการจัดรูปแบบจะเหมือนกับจำนวนค่าที่แสดงใน "รายการค่า" เช่น:
Strings=String.format(%d元%0.3fkg%d台,123,456.777888,999);
จากนั้น s คือ 123 หยวน 456.778 กิโลกรัม 999 หน่วย
ตามค่าเริ่มต้น วิธีการจัดรูปแบบจะใช้อักขระจัดรูปแบบใน "โหมดการจัดรูปแบบ" ตามลำดับจากซ้ายไปขวาเพื่อจัดรูปแบบค่าที่สอดคล้องกันใน "รายการค่า" ในขณะที่อักขระธรรมดาใน "โหมดการจัดรูปแบบ" ยังคงไม่เปลี่ยนแปลง ตัวอย่าง สมมติว่าเป็นประเภท int ค่าของตัวแปร x และตัวแปรคู่ y คือ 123 และ 3.1415926 ตามลำดับ ดังนั้นสำหรับ:
Strings=String.format(จากซ้ายไปขวา:%d,%.3f,%d,x,y,100);
จากนั้น s คือจากซ้ายไปขวา: 123,3.142,100
หากคุณไม่ต้องการใช้ลำดับเริ่มต้น (จากซ้ายไปขวา) ในการจัดรูปแบบ คุณสามารถเพิ่มสัญลักษณ์ดัชนีหน้าอักขระรูปแบบได้ เช่น index$ เช่น 1$ หมายถึงสัญลักษณ์แรกใน "รายการค่า ", 2$ หมายถึง "ค่า" 2 ในรายการ" สำหรับ:
Strings=String.format(ไม่ใช่จากซ้ายไปขวา:%2$.3f,%3$d,%1$d,x,y,100);
จากนั้น s ไม่ใช่จากซ้ายไปขวา: 3.142,100,123
หมายเหตุ: หากคุณวางแผนที่จะรวม % ปกติไว้ใน "โหมดการจัดรูปแบบ" คุณต้องป้อน 2 % ติดต่อกันเมื่อเขียนโค้ด เช่น:
Strings=String.format(%d%%,89);
จากนั้น s คือ 89%