คำนำ
เริ่มต้นใน Java 5.0 คลาสสตริงได้เพิ่มเมธอดสตริงที่ทรงพลัง () วิธีนี้ยังไม่ได้ใช้และมันก็เป็นของเสียจริงๆ บทความนี้จะนำคุณผ่านฟังก์ชั่นของวิธีนี้อย่างรวดเร็ว เมื่อคุณต้องการใช้ข้อความที่จัดรูปแบบในอนาคตคุณอาจไม่จำเป็นต้องยืมไลบรารีของบุคคลที่สามอีกต่อไปหรือนำไปใช้ด้วยตัวเอง
ก่อนอื่นให้ดูตัวอย่างง่ายๆ:
String formated = string.format (" %s %d ในปีนี้", "Xiao li", 30); // "Xiao Li อายุ 30 ปีในปีนี้"หากไม่มีคำอธิบายของฉันคุณจะเห็น:
1. ประเภทตัวยึด
ตัวอักษรตามตัวยึดตำแหน่ง "%" กำหนดประเภทของพารามิเตอร์จริงที่ยอมรับ มีสถานที่หลายประเภท:
| จดหมาย | ประเภทพารามิเตอร์ที่ใช้งานได้ | อธิบาย |
|---|---|---|
| %A | หมายเลขจุดลอยตัว | หมายเลขจุดลอยตัวในเลขฐานสิบหก |
| %b / %b | ค่าใด ๆ | หากพารามิเตอร์เป็นโมฆะเอาต์พุตเท็จมิฉะนั้นเอาต์พุตจริง |
| %c / %c | ตัวละครหรือจำนวนเต็ม | เอาต์พุตอักขระ Unicode ที่สอดคล้องกัน |
| %D | จำนวนเต็ม | จัดรูปแบบผลลัพธ์ของจำนวนเต็ม |
| %e / %e | หมายเลขจุดลอยตัว | หมายเลขจุดลอยตัวโดยใช้สัญลักษณ์ทางวิทยาศาสตร์ |
| %f | หมายเลขจุดลอยตัว | จัดรูปแบบผลลัพธ์ของหมายเลขจุดลอยตัว |
| %g / %g | หมายเลขจุดลอยตัว | ตัดสินใจว่าจะส่งออกหมายเลขจุดลอยตัวในวิธีการสัญกรณ์ทางวิทยาศาสตร์ |
| %h / %h | ค่าใด ๆ | ส่งคืนค่า hashCode () ในพารามิเตอร์เอาต์พุตเลขฐานสิบหก |
| %o | จำนวนเต็ม | จำนวนเต็มเอาท์พุทใน octal |
| %s / %s | สาย | จัดรูปแบบผลลัพธ์ของสตริง |
| %t | วันที่และเวลา | จัดรูปแบบผลลัพธ์ของวันที่และเวลา |
| %x / %x | จำนวนเต็ม | จำนวนเต็มเอาท์พุทในเลขฐานสิบหก |
| %n | ไม่มี | การพักสาย |
| - | ไม่มี | เปอร์เซ็นต์ลงนามในตัวเอง |
ตัวอักษรตัวใหญ่ระบุว่าเอาท์พุทตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่
สิ่งที่พบบ่อยที่สุดที่เราใช้คือ %s, %d และ %f และบางครั้ง %t บทความนี้มีข้อ จำกัด ในอวกาศดังนั้นจึงมีการแนะนำเฉพาะสี่ประเภทเท่านั้น โปรดอ่านเอกสาร API สำหรับส่วนที่เหลือด้วยตัวคุณเอง
2. ฟอร์แมตสตริงและจำนวนเต็ม
นี่คือตัวอย่างที่จะอธิบาย:
// กรอกช่องว่างและจัดตำแหน่งขวา: String.format ("%10s, World", "Hello"); // เอาต์พุต "Hello, World" String.format ("%8d", 123); // เอาต์พุต "123" // กรอกช่องว่างและจัดตำแหน่งซ้าย: string.format ("%-10s, World", "Hello"); // เอาต์พุต "Hello, World" String.format ("%-8d", 123); // เอาท์พุท "123" // Comprease 0 และจัดตำแหน่ง (ถูกต้องสำหรับตัวเลข) สตริง ("%08d", 123); // เอาต์พุต "123" String.format ("%-08d", 123); // ข้อผิดพลาด! 0 ไม่ได้รับอนุญาตให้เติมทางด้านขวา // เอาต์พุตถึงสตริงอักขระ n ฟอร์แมต ("%. 5S", "สวัสดีโลก"); // เอาท์พุท "สวัสดี" String.format ("%. 5s ... ", "Hello, World"); // เอาท์พุท "สวัสดี ... " String.format ("%10.5s ... ", "Hello, World"); // เอาท์พุท "สวัสดี ... " // เอาต์พุตเครื่องหมายจุลภาคที่คั่นด้วยสตริงหมายเลข ("%, d", 1234567); // เอาท์พุท "1,234,567" 3. การจัดรูปแบบวันที่
สิ่งนี้ซับซ้อนกว่าเล็กน้อย แต่ถ้าคุณต้องการผสมหมายเลขข้อความและวันที่ในสตริงมันควรจะสะดวกกว่าที่จะใช้วิธีเดียวเท่านั้นมากกว่าการรวมวันที่และ numberFormat เข้าด้วยกัน
ก่อนอื่นให้เพิ่มความรู้อีกอย่างหนึ่งนั่นคือตัวยึดตำแหน่งสามารถระบุพารามิเตอร์ในตำแหน่งที่แน่นอนในรูปแบบ %n $ ตัวอย่างเช่น %2 $ d แสดงถึงพารามิเตอร์พลาสติกที่สอง โปรดทราบว่า n ที่นี่เริ่มต้นด้วย 1 แทน 0
เมื่อจัดรูปแบบวันที่ผู้ถือหลายตัวจะต้องชี้ไปที่พารามิเตอร์เดียวกัน (เพื่อหลีกเลี่ยงการทำซ้ำพารามิเตอร์เดียวกันหลายครั้ง) ในเวลาเดียวกันเนื่องจาก "t" หมายถึงวันที่และเวลารูปแบบที่สมบูรณ์คือ %n $ tx โดยที่ x หมายถึงส่วนใดของเวลาที่ใช้ ค่าเสริมสำหรับ x เป็นตัวอย่างเช่น:
y = ปี; M = เดือน; d = วัน; h = ชั่วโมง; m = นาที; s = วินาที; l = ms; A = วันของสัปดาห์ (ชื่อ); b = ชื่อเดือน;
มีจดหมายอื่น ๆ โปรดดูเอกสาร API สำหรับรายละเอียด นี่คือตัวอย่าง:
// รูปแบบผลลัพธ์คือ "ตอนนี้คือ 15:04:52, วันอาทิตย์" // โปรดทราบว่า 10 ใน "%1 $ 10th" หมายความว่าพื้นที่ที่เต็มไปด้วย 10 บิตและสตริงที่จัดแนวขวา ("ตอนนี้คือ%1 $ 10:%1 $ tm:%1 $ ts,%1 $ ta"สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะมีค่าอ้างอิงบางอย่างสำหรับการศึกษาหรือที่ทำงานของทุกคน หากคุณมีคำถามใด ๆ คุณสามารถฝากข้อความไว้เพื่อสื่อสาร ขอบคุณสำหรับการสนับสนุน Wulin.com