ค้นพบทางเลือกของ Sprintf
ในภาษา Java: การใช้ String.format
เมื่อทำการเปลี่ยนแปลงจาก C ไปยัง Java นักพัฒนาหลายคนพบว่าตนเองต้องการฟังก์ชันการทำงานที่คล้ายคลึงกัน โดยเฉพาะอย่างยิ่งเมื่อพูดถึงสตริงที่มีรูปแบบ คำถามที่พบบ่อยคือ: ฉันจะทำให้ได้ผลลัพธ์เดียวกับ sprintf
ของ C ใน Java ได้อย่างไร? ใน C, sprintf
อนุญาตให้นักพัฒนาฟอร์แมตสตริงและส่งผลลัพธ์ไปยังตัวแปรสตริงได้โดยตรง อย่างไรก็ตาม ใน Java สิ่งนี้อาจดูยุ่งยากในตอนแรก
เข้าใจปัญหา
ด้วยการแนะนำ printf
ใน Java ตั้งแต่เวอร์ชัน 1.5 มันได้กลายเป็นเรื่องง่ายขึ้นในการฟอร์แมตสตริง อย่างไรก็ตาม คำถามทั่วไปจากผู้มาใหม่ (หรือนักพัฒนาที่มีประสบการณ์) คือวิธีการส่งผลลัพธ์ไปยังสตริงแทนที่จะเป็นคอนโซลหรือไฟล์ นี่คือจุดที่ String.format
มีประโยชน์
วิธีการแก้ปัญหา: การใช้ String.format
Java มีวิธีการที่สร้างขึ้นมาเพื่อการฟอร์แมตสตริงซึ่งทำหน้าที่เหมือนกับ sprintf
ของ C เมธอดที่เรียกว่า String.format
คืนค่าสตริงที่ฟอร์แมตตามรูปแบบที่ระบุไว้
นี่คือตัวอย่างที่ง่าย
เพื่อแสดงวิธีการใช้ String.format
เราจะพิจารณาโค้ดต่อไปนี้:
// เก็บค่าสตริงที่ฟอร์แมตใน 'result'
String result = String.format("%4d", i * j);
// เขียนผลลัพธ์ไปยังเอาต์พุตมาตรฐาน
System.out.println(result);
การวิเคราะห์ตัวอย่าง:
-
String.format("%4d", i * j):
- พารามิเตอร์ตัวแรก (
"%4d"
) ระบุว่าคุณต้องการฟอร์แมตข้อมูลของคุณอย่างไร%d
หมายถึงคุณกำลังฟอร์แมตจำนวนเต็ม- หมายเลข
4
แสดงว่าผลลัพธ์ควรอยู่ทางด้านขวาและมีการเติมให้มีอย่างน้อย 4 ตัวอักษร
- พารามิเตอร์ตัวที่สอง (
i * j
) คือข้อมูลที่คุณต้องการฟอร์แมต ตัวอย่างนี้ทำการคูณi
และj
- พารามิเตอร์ตัวแรก (
-
ตัวแปรผลลัพธ์:
- ผลลัพธ์ของ
String.format
จะถูกเก็บในตัวแปรresult
ซึ่งอนุญาตให้คุณใช้สตริงนั้นในโปรแกรมของคุณในภายหลัง เช่น การพิมพ์ไปยังคอนโซลหรือบันทึกไปยังที่ใดที่หนึ่ง
- ผลลัพธ์ของ
-
การแสดงผลลัพธ์:
- สุดท้าย
System.out.println(result)
แสดงสตริงที่ฟอร์แมตในคอนโซล
- สุดท้าย
แหล่งข้อมูลเพิ่มเติม
สำหรับข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกที่มีอยู่กับ String.format
คุณสามารถดูเอกสารอย่างเป็นทางการที่ เอกสารอย่างเป็นทางการ เอกสารนี้ยังให้คำแนะนำที่สมบูรณ์เกี่ยวกับไวยากรณ์การฟอร์แมตที่สามารถใช้งานได้
สรุป
โดยสรุป วิธีการ String.format
ของ Java เป็นวิธีการที่ยอดเยี่ยมสำหรับทุกคนที่ต้องการฟอร์แมตสตริงในลักษณะที่คล้ายคลึงกับ sprintf
ของ C ไม่ว่าคุณจะสร้างผลลัพธ์ที่เป็นมิตรต่อผู้ใช้ในคอนโซลหรือเตรียมสตริงสำหรับการประมวลผลเพิ่มเติม การเชี่ยวชาญใน String.format
สามารถเพิ่มความชัดเจนและการจัดระเบียบของโค้ดของคุณ
ด้วยความรู้สิ่งนี้ การเปลี่ยนแปลงจาก C หรือการพัฒนาชุดทักษะของคุณใน Java ก็ดูเหมือนจะง่ายขึ้นเล็กน้อย!