ค้นพบทางเลือกของ 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);

การวิเคราะห์ตัวอย่าง:

  1. String.format("%4d", i * j):

    • พารามิเตอร์ตัวแรก ("%4d") ระบุว่าคุณต้องการฟอร์แมตข้อมูลของคุณอย่างไร
      • %d หมายถึงคุณกำลังฟอร์แมตจำนวนเต็ม
      • หมายเลข 4 แสดงว่าผลลัพธ์ควรอยู่ทางด้านขวาและมีการเติมให้มีอย่างน้อย 4 ตัวอักษร
    • พารามิเตอร์ตัวที่สอง (i * j) คือข้อมูลที่คุณต้องการฟอร์แมต ตัวอย่างนี้ทำการคูณ i และ j
  2. ตัวแปรผลลัพธ์:

    • ผลลัพธ์ของ String.format จะถูกเก็บในตัวแปร result ซึ่งอนุญาตให้คุณใช้สตริงนั้นในโปรแกรมของคุณในภายหลัง เช่น การพิมพ์ไปยังคอนโซลหรือบันทึกไปยังที่ใดที่หนึ่ง
  3. การแสดงผลลัพธ์:

    • สุดท้าย System.out.println(result) แสดงสตริงที่ฟอร์แมตในคอนโซล

แหล่งข้อมูลเพิ่มเติม

สำหรับข้อมูลรายละเอียดเพิ่มเติมเกี่ยวกับตัวเลือกที่มีอยู่กับ String.format คุณสามารถดูเอกสารอย่างเป็นทางการที่ เอกสารอย่างเป็นทางการ เอกสารนี้ยังให้คำแนะนำที่สมบูรณ์เกี่ยวกับไวยากรณ์การฟอร์แมตที่สามารถใช้งานได้

สรุป

โดยสรุป วิธีการ String.format ของ Java เป็นวิธีการที่ยอดเยี่ยมสำหรับทุกคนที่ต้องการฟอร์แมตสตริงในลักษณะที่คล้ายคลึงกับ sprintf ของ C ไม่ว่าคุณจะสร้างผลลัพธ์ที่เป็นมิตรต่อผู้ใช้ในคอนโซลหรือเตรียมสตริงสำหรับการประมวลผลเพิ่มเติม การเชี่ยวชาญใน String.format สามารถเพิ่มความชัดเจนและการจัดระเบียบของโค้ดของคุณ

ด้วยความรู้สิ่งนี้ การเปลี่ยนแปลงจาก C หรือการพัฒนาชุดทักษะของคุณใน Java ก็ดูเหมือนจะง่ายขึ้นเล็กน้อย!