บทความนี้แนะนำการใช้ Java String formatting-string.format () ดังนี้:
รูปแบบของประเภทปกติ
รูปแบบ () วิธีการของคลาสสตริงใช้เพื่อสร้างสตริงที่จัดรูปแบบและเชื่อมต่อวัตถุสตริงหลายตัว นักเรียนที่คุ้นเคยกับภาษา C ควรจดจำวิธี Sprintf () ของภาษา C และมีความคล้ายคลึงกันระหว่างทั้งสอง รูปแบบ () วิธีการมีสองรูปแบบที่โอเวอร์โหลด
รูปแบบ (รูปแบบสตริง, วัตถุ ... args) สตริงใหม่ใช้ตำแหน่งโลคัลเพื่อสร้างรูปแบบสตริงและพารามิเตอร์เพื่อสร้างสตริงใหม่ที่จัดรูปแบบ
รูปแบบ (ตำแหน่งสถานที่ตั้ง, รูปแบบสตริง, วัตถุ ... args) ใช้สถานที่ที่ระบุเพื่อสร้างรูปแบบสตริงและพารามิเตอร์เพื่อสร้างสตริงที่จัดรูปแบบ
แสดงตัวแปลงที่แตกต่างกันเพื่อใช้การแปลงประเภทข้อมูลที่แตกต่างกันเป็นสตริงดังแสดงในรูป
เครื่องแปลง | อธิบาย | ตัวอย่าง |
%S | ประเภทสตริง | "Mingrisoft" |
%C | ประเภทตัวละคร | 'M' |
%B | ประเภทบูลีน | จริง |
%D | ประเภทจำนวนเต็ม (ทศนิยม) | 99 |
%x | ประเภทจำนวนเต็ม (เลขฐานสิบหก) | FF |
%o | ประเภทจำนวนเต็ม (octal) | 77 |
%f | ประเภทจุดลอยตัว | 99.99 |
%A | ประเภทจุดลอยเลขฐานสิบหก | ff.35ae |
%e | ประเภทดัชนี | 9.38E+5 |
%g | ประเภทจุดลอยตัวทั่วไป (สั้นกว่าของประเภท F และ E) | |
%ชม | รหัสแฮช | |
- | เปอร์เซ็นต์ประเภท | - |
%n | การพักสาย | |
%tx | ประเภทวันที่และเวลา (x แสดงถึงอักขระการแปลงวันที่และเวลาที่แตกต่างกัน |
กรณีทดสอบ
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {string str = null; str = stringformat ("hi,%s", "wang li"); SystemoutPrintln (STR); str = stringformat ("hi,%s:%s%s", "wang nan", "wang li", "wang zhang"); SystemoutPrintln (STR); SystemOutPrintf ("ตัวอักษรตัวพิมพ์ใหญ่ A คือ: %c %n", 'a'); SystemOutPrintf ("3> 7 ผลลัพธ์คือ: %b %n", 3> 7); SystemoutPrintf ("ครึ่งหนึ่งของ" 100 คือ: %d %n ", 100/2); Systemoutprintf (" จำนวนหกสิบหกของจำนวนหกสิบหกคือ: %x %n ", 100); Systemoutprintf (" จำนวน 100 ส่วนที่เป็น: %o %n ", 100); ราคาข้างต้นคือ: %a %n ", 50*85); systemoutprintf (" ดัชนีของราคาข้างต้นหมายถึง: %e %n ", 50*85); systemoutprintf (" ความยาวที่สั้นกว่าของดัชนีของราคาข้างต้น รหัสของตัวอักษร A คือ: %h %n ", 'a');}ผลลัพธ์ผลลัพธ์
สวัสดีวังหลี่สวัสดีวังน่าน: วังหลี่วังจดหมายของจาง A เป็นตัวพิมพ์ใหญ่: 3> 7 ผลที่ได้คือ: ครึ่งเท็จของ 100 คือ: 50 100 คือ: 64 100 คือ 80 144 50 หยวนหนังสือ 5 ส่วนลดคือ: 500000 หยวนจำนวน hexadecimal ด้านบน: 0x54p5 ส่วนลดด้านบนคือ 85% รหัสแฮชของตัวอักษร A คือ: 41
โลโก้ที่จับคู่กับสัญลักษณ์การแปลงจะแสดงในรูป
| โลโก้ | อธิบาย | ตัวอย่าง | ผลลัพธ์ |
| - | เพิ่มสัญลักษณ์สำหรับตัวเลขบวกหรือลบ | ("%+d", 15) | +15 |
| - | ฝ่ายซ้าย | ("%-5d", 15) | | 15 | |
| 0 | เพิ่ม 0 ก่อนหมายเลข | ("%04d", 99) | 0099 |
| ช่องว่าง | เพิ่มจำนวนช่องว่างที่ระบุก่อนจำนวนเต็ม | ("% 4D", 99) | - 99 | |
| - | หมายเลขกลุ่มด้วย "," | ("%, F", 9999.99) | 9,999990000 |
| - | ใช้วงเล็บเพื่อรวมจำนวนลบ | ("%(f", -99.99) | (99.990000) |
| - | หากเป็นจุดลอยตัวมันจะมีจุดทศนิยม ถ้าเป็นเลขฐานสิบหกหรือ ength มันจะเพิ่ม 0x หรือ 0 | ("%#x", 99) | ("%#o", 99) |
| - | จัดรูปแบบพารามิเตอร์ที่อธิบายโดยตัวแปลงก่อนหน้า | (" %f และ %<3.2f", 99.45) | 99.450000 และ 99.45 |
| - | ดัชนีพารามิเตอร์ที่จัดรูปแบบ | ("%1 $ d,%2 $ s", 99, "ABC") | 99, ABC |
กรณีทดสอบ
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {string str = null; // $ ใช้ str = stringformat ("ใช้พารามิเตอร์รูปแบบ $: %1 $ d, %2 $ s", 99, "ABC"); SystemoutPrintln (STR); //+ใช้ systemoutprintf ("สัญลักษณ์แสดงจำนวนบวกและลบ: %+d และ %d %n", 99, -99); // เสร็จสิ้น OUSE SystemOutPrintf ("จำนวนที่ยอดเยี่ยมที่สุดคือ: %03d %n", 7); // ใช้ systemoutprintf ("เอฟเฟกต์ของคีย์แท็บคือ: %8d %n", 7); // ใช้ systemoutprintf ("ผลของการจัดกลุ่มจำนวนเต็มคือ: %, d %n", 9989997); // Space และ Decimal Point Number SystemEmoutPrintf ("ราคาของหนังสือคือ: % 5F หยวน % n", 8); -ผลลัพธ์ผลลัพธ์
การใช้พารามิเตอร์รูปแบบ $: 99, สัญลักษณ์ ABC ที่แสดงตัวเลขบวกและลบ: +99 และ -99 จำนวนที่ยอดเยี่ยมที่สุดคือ: 007 ผลของปุ่มแท็บคือ: 7 ผลของการจัดกลุ่มจำนวนเต็มคือ: 9,989,997 ราคาหนังสือคือ: 80,000 หยวน
วันที่และการจัดรูปแบบสตริงเหตุการณ์
เวลาและวันที่มักจะต้องแสดงในอินเทอร์เฟซโปรแกรม แต่รูปแบบของการแสดงผลมักจะไม่น่าพอใจ ต้องใช้รหัสจำนวนมากเพื่อผ่านอัลกอริทึมต่างๆเพื่อให้ได้รูปแบบวันที่และเวลาที่เหมาะสมที่สุด นอกจากนี้ยังมีตัวแปลง %TX ในรูปแบบสตริงที่ไม่ได้มีรายละเอียดมันถูกใช้เป็นพิเศษในการจัดรูปแบบวันที่และเวลา X ในตัวแปลง %TX แสดงตัวแปลงเพิ่มเติมที่ประมวลผลรูปแบบวันที่และเวลาและชุดค่าผสมของพวกเขาสามารถจัดรูปแบบวันที่และเวลาเป็นหลายรูปแบบ
รูปแบบทั่วไปสำหรับการรวมวันที่และเวลาดังแสดงในรูป
| เครื่องแปลง | อธิบาย | ตัวอย่าง |
| C | รวมข้อมูลวันที่และเวลาทั้งหมด | วันเสาร์ที่ 27 ตุลาคม 14:21:20 CST 2007 |
| f | รูปแบบ "ปีประจำเดือน" | 2550-10-27 |
| d | รูปแบบ "เดือน/วัน/ปี" | 10/27/07 |
| R | "HH: MM: SS PM" รูปแบบ (ระบบ 12 ชั่วโมง) | 02:25:51 PM |
| T | "HH: MM: SS" รูปแบบ (ระบบ 24 ชั่วโมง) | 14:28:16 |
| R | รูปแบบ "HH: MM" (ระบบ 24 ชั่วโมง) | 14:28 |
กรณีทดสอบ
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {วันที่ = วันที่ใหม่ (); // C ใช้ SystemUtPrintf ("ข้อมูลวันที่และเวลาทั้งหมด: %tc %n", วันที่); // f ใช้ SystemUtPrintf ("รูปแบบวันประจำเดือนวัน: %tf %n", วันที่); // D ใช้ SystemUtPrintf ("รูปแบบเดือน/วัน/ปี: %td %n", วันที่); // r ใช้ SystemUtPrintf ("HH: MM: SS PM รูปแบบ (ระบบเวลา 12 ครั้ง): %TT %N", วันที่); // t ใช้ SystemUtPrintf ("HH: MM: รูปแบบ SS (ระบบเวลา 24 ครั้ง): %TT %N", วันที่); // r ใช้ SystemUtPrintf ("HH: MM รูปแบบ (รูปแบบเวลา 24 ครั้ง): %TR", วันที่); -ผลลัพธ์ผลลัพธ์
ข้อมูลวันที่และเวลาทั้งหมด: วันจันทร์ 10 กันยายน 10:43:36 CST 2012 รูปแบบวันวัน: 2012-09-10 เดือน/วันรูปแบบ: 09/10/12 HH: MM: รูปแบบ SS PM (12 O'Clock): 10:43:36 MORNING HH: MM: MM: MM: SS FORMAT
ตัวแปลงที่กำหนดรูปแบบวันที่สามารถทำให้วันที่สร้างสตริงใหม่ผ่านตัวแปลงที่ระบุ ตัวแปลงวันที่เหล่านี้จะแสดงในรูป
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {วันที่ = วันที่ใหม่ (); // การใช้งานของ B, ตัวย่อเดือนคือ String str = stringformat (localeus, "ตัวย่อเดือนอังกฤษ: %tb", วันที่); SystemoutPrintln (STR); SystemOutPrintf ("ตัวย่อเดือนท้องถิ่น: %TB %N", วันที่); // การใช้งานของ B, เดือนเต็มชื่อ str = stringformat (localeus, "เดือนอังกฤษชื่อเต็ม: %tb", วันที่); SystemoutPrintln (STR); SystemOutPrintf ("ชื่อเต็มเดือนท้องถิ่น: %TB %N", วันที่); // การใช้ A, สัปดาห์เป็นตัวย่อเป็น str = stringformat (localeus, "ตัวย่อของสัปดาห์อังกฤษ: %ta", วันที่); SystemoutPrintln (STR); // การใช้ A, Systemoutprintf ชื่อเต็มของสัปดาห์ ("ตัวย่อของสัปดาห์ท้องถิ่น: %ta %n", วันที่); // การใช้ C, สองหลัก systemoutprintf ("สองหลักแรกของปี (น้อยกว่าสองหลักก่อนแรก): %tc %n", วันที่); // การใช้ y, สองหลัก systemoutprintf ("สองหลักสุดท้ายของปี (น้อยกว่าสองหลักก่อนแรก): %ty %n", วันที่); // j จำนวนวันในหนึ่งปี SystemUtprintf ("วันต่อปี (นั่นคือวันของปี): %tj %n", วันที่); // M, Month SystemutPrintf ("เดือนของสองหลัก (น้อยกว่าสองหลักก่อน 0): %tm %n", วันที่); // D, วัน (สองหลัก, ไม่เพียงพอที่จะทำขึ้นสำหรับศูนย์) SystemUtPrintf ("วันสองหลัก (น้อยกว่าสองหลักก่อน 0): %td %n", วันที่); // E, วัน (หนึ่งหลักก่อน 0) SystemUtPrintf ("วันสองหลัก (น้อยกว่าสองหลักก่อน 0): %td %n", วันที่); // E, วัน (หนึ่งหลักก่อน 0) SystemUtPrintf ("วันของเดือน (ไม่เพียงพอที่จะทำขึ้นสำหรับศูนย์): %te", วันที่); -ผลลัพธ์ผลลัพธ์
ตัวย่อเดือนภาษาอังกฤษ: ตัวย่อเดือน ก.ย. : กันยายนเดือนอังกฤษชื่อเต็ม: ชื่อเต็มชื่อ: กันยายนสัปดาห์อังกฤษตัวย่อ: Mon Local Week Awsiation: สองหลักแรกของสัปดาห์ (ก่อนที่จะน้อยกว่าสองหลักเพิ่ม 0): 20 ตัวเลขสองหลักสุดท้ายของปี ตัวเลข, เพิ่ม 0): 09 วันของสองหลัก (ก่อนที่จะน้อยกว่าสองหลักเพิ่ม 0): วันตุลาคม (ก่อนที่จะน้อยกว่าสองหลักเพิ่ม 0): 10
เมื่อเปรียบเทียบกับตัวแปลงรูปแบบวันที่ตัวแปลงรูปแบบเวลามีความแม่นยำมากขึ้นเรื่อย ๆ มันสามารถจัดรูปแบบเวลาเป็นหน่วยเช่นชั่วโมงนาทีวินาทีวินาทีและแม้กระทั่งชั่วโมงมิลลิวินาที ตัวแปลงสำหรับการจัดรูปแบบสตริงเวลาจะแสดงในรูป
| เครื่องแปลง | อธิบาย | ตัวอย่าง |
| ชม | หมายเลข 2 หลัก 24 ชั่วโมง (ต่ำกว่า 2 หลักเพิ่ม 0 ก่อนแรก) | 15 |
| ฉัน | หมายเลข 2 หลัก 12 ชั่วโมง (น้อยกว่า 2 หลักก่อนเพิ่ม 0) | 03 |
| K | หมายเลข 2 หลัก 24 ชั่วโมง (ไม่ได้เพิ่ม 0 มาก่อน) | 15 |
| l | หมายเลข 2 หลัก 12 ชั่วโมง (ไม่ได้เพิ่ม 0 มาก่อน) | 3 |
| ม. | นาที 2 หลัก (น้อยกว่า 2 หลักก่อนเพิ่ม 0) | 03 |
| S | วินาทีของ 2 หลัก (ต่ำกว่า 2 หลักเพิ่ม 0 ด้านหน้า) | 09 |
| l | มิลลิวินาที 3 หลัก (น้อยกว่า 3 หลักก่อนเพิ่ม 0) | 015 |
| n | จำนวนมิลลิวินาที 9 หลัก (ต่ำกว่า 9 หลักเพิ่ม 0 ก่อน) | 562000000 |
| P | เครื่องหมายตอนเช้าหรือบ่ายสำหรับตัวอักษรตัวพิมพ์เล็ก | สื่อ: บ่าย ภาษาอังกฤษ: PM |
| Z | ออฟเซ็ตสัมพันธ์กับเขตเวลา RFC822 ของ GMT | +0800 |
| Z | ตัวย่อโซนเวลา | CST |
| S | 1970-1-1 00:00:00 จำนวนวินาทีที่ผ่านไปแล้ว | 1193468128 |
| ถาม | 1970-1-1 00:00:00 จำนวนมิลลิวินาทีผ่านไปแล้ว | 1193468128984 |
รหัสทดสอบ
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {วันที่ = วันที่ใหม่ (); // h ใช้ SystemUtPrintf ("ระบบเวลา 24 หลัก 2 หลัก (ก่อน 0 ถ้าน้อยกว่า 2 หลัก): %th %n", วันที่); // ฉันใช้ SystemUtPrintf ("2 หลัก 12 ชั่วโมงระบบเวลา (ก่อน 0 ถ้าน้อยกว่า 2 หลัก): %ti %n", วันที่); // K ใช้ SystemUtPrintf ("ระบบเวลา 24 หลัก 2 หลัก (ก่อน 0 ถ้าไม่ใช่ 0 ถ้าไม่ใช่ 0 ถ้าไม่ใช่ 0 ถ้าไม่ใช่ 0 ถ้าไม่ใช่ 0 ถ้าไม่ใช่ l"); // l ใช้ SystemUtPrintf ("2 หลัก 12 ชั่วโมง %tm %n ", วันที่); // s ใช้ systemutPrintf (" วินาทีของ 2 หลัก (ก่อน 0 ถ้าน้อยกว่า 2 หลัก): %ts %n ", วันที่); // l ใช้ systemutPrintf (" นาที 3 หลัก (ก่อน 0 ถ้าน้อยกว่า 3 หลัก) %tn %n ", วันที่); // p ใช้ string str = stringformat (localeus," เครื่องหมายตอนเช้าหรือช่วงบ่ายของตัวอักษรตัวพิมพ์เล็ก (ภาษาอังกฤษ): %tp ", วันที่); systemoutprintln (str); systemoutprintf (" ตอนเช้าหรือช่วงบ่าย โซน: %tz %n ", วันที่); // z ใช้ systemoutprintf (" สตริงตัวย่อโซนเวลา: %tz %n ", วันที่); // S SystemOutPrintf การใช้งานของ S ("1970-1-1 00:00:00 จำนวนวินาทีที่ผ่านไปจนถึงปัจจุบัน: %ts %n", วันที่); // q ใช้ systemoutprintf ("1970-1-1 00:00:00 จำนวนมิลลิวินาทีที่ผ่านไปแล้ว: %tq %n", วันที่); -ผลลัพธ์ผลลัพธ์
2 หลัก 24 ชั่วโมงชั่วโมง (ก่อน 0 ถ้าน้อยกว่า 2 หลัก): 11 2 หลัก 12 ชั่วโมง (ก่อน 0 ถ้าน้อยกว่า 2 หลัก): 11 2 2 หลัก 24 ชั่วโมง (ก่อน 0 ถ้าน้อยกว่า 2 หลัก): 11 2 หลัก 12 ชั่วโมง (ก่อน 0 2 หลัก (ก่อน 2 หลัก 2 หลักหลัก (ก่อน 0 ถ้าน้อยกว่า 2 หลัก): 52 3 หลักหลักมิลลิวินาที (ก่อน 0 ถ้าน้อยกว่า 3 หลัก): 773 9 หลักหลัก (ก่อน 0 ถ้าน้อยกว่า 9 หลัก): 7730000000 RFC822 Time Zone: +0800 โซนตัวย่อสตริง: CST 1970-1-1 00:00:00 จำนวนวินาทีที่ผ่านไปจนถึงปัจจุบัน: 1347246232 1970-1-1 00:00:00 น.
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น