0Pricing
Java Academy · บทเรียน

String.format

สร้างสตริงตามรูปแบบ

String.format เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

จัดรูปแบบโดยไม่พิมพ์

printf ส่งข้อความตรงไปยังคอนโซล แต่บางครั้งคุณอาจต้องการข้อความที่จัดรูปแบบแล้วในรูปของ String เพื่อจัดเก็บ ส่งคืน หรือใช้ซ้ำ

String.format ทำสิ่งนี้ได้พอดี โดยใช้กฎเดียวกัน แต่ส่งคืนค่าแทนการพิมพ์

String.format ครั้งแรกของคุณ

String.format ใช้ช่องแทนค่าแบบเดียวกับ printf โดยจะสร้างสายอักขระใหม่แล้วส่งกลับมาให้คุณ

ในที่นี้ ผลลัพธ์จะถูกจัดเก็บไว้ใน msg แล้วจึงพิมพ์ออกมา

public class Main {
    public static void main(String[] args) {
        String msg = String.format("Hello, %s!", "World");
        System.out.println(msg);
    }
}

ตัวระบุรูปแบบเหมือนเดิม

ทุกสิ่งที่คุณเรียนรู้มายังคงใช้ได้ เช่น %d %f %.2f ความกว้าง และแฟล็กต่าง ๆ ล้วนใช้กับ String.format ได้

ข้อแตกต่างเพียงอย่างเดียวคือ ผลลัพธ์จะถูกส่งคืนแทนที่จะแสดงออกมา

public class Main {
    public static void main(String[] args) {
        String s = String.format("%s: %.2f", "Price", 9.5);
        System.out.println(s);
    }
}

การจัดเก็บผลลัพธ์

เนื่องจากคำสั่งนี้ส่งคืน String คุณจึงสามารถเก็บไว้ในตัวแปร ต่อสายอักขระเข้าด้วยกัน หรือส่งให้เมธอดอื่นได้

วิธีนี้มีประโยชน์สำหรับการสร้างข้อความทีละขั้นตอน

public class Main {
    public static void main(String[] args) {
        String label = String.format("#%03d", 7);
        System.out.println("ID " + label);
    }
}

การส่งคืนข้อความที่จัดรูปแบบ

เมธอดสามารถใช้ String.format เพื่อส่งคืนสายอักขระที่เป็นระเบียบได้ ซึ่งช่วยรวมตรรกะการจัดรูปแบบไว้ในที่เดียว

ด้านล่างนี้ greet จะส่งคืนคำทักทายที่จัดรูปแบบแล้ว

public class Main {
    static String greet(String name) {
        return String.format("Welcome, %s!", name);
    }
    public static void main(String[] args) {
        System.out.println(greet("Mia"));
    }
}

ไม่มีการขึ้นบรรทัดใหม่โดยอัตโนมัติ

เช่นเดียวกับ printf String.format จะไม่เพิ่มการขึ้นบรรทัดใหม่ เว้นแต่คุณจะเขียน \n ไว้ในสายอักขระรูปแบบ

หากคุณพิมพ์ผลลัพธ์ด้วย println คำสั่งนั้นจะเพิ่มการขึ้นบรรทัดใหม่ให้

public class Main {
    public static void main(String[] args) {
        String s = String.format("Line one");
        System.out.println(s);
    }
}

ค่าหลายค่า

คุณสามารถส่งอาร์กิวเมนต์ได้มากเท่าจำนวนช่องแทนค่า โดยค่าจะเติมลงในช่องจากซ้ายไปขวาเช่นเดียวกับ printf

วิธีนี้ทำให้สร้างแถวข้อมูลเป็นสายอักขระเดียวได้ง่าย

public class Main {
    public static void main(String[] args) {
        String row = String.format("%s | %d | %.1f", "Tea", 3, 2.5);
        System.out.println(row);
    }
}

การใช้รูปแบบซ้ำ

เนื่องจากสายอักขระรูปแบบเป็นเพียงข้อความ คุณจึงนำไปใช้ซ้ำหลายครั้งภายในลูปเพื่อสร้างสายอักขระที่มีรูปแบบสม่ำเสมอได้

การเรียกใช้แต่ละครั้งจะส่งคืนสายอักขระใหม่พร้อมค่าใหม่

public class Main {
    public static void main(String[] args) {
        for (int i = 1; i <= 3; i++) {
            System.out.println(String.format("Item %d", i));
        }
    }
}

printf ใช้ format ภายใน

เบื้องหลังแล้ว System.out.printf(fmt, args) ทำงานคล้ายกับการพิมพ์ String.format(fmt, args)

ดังนั้น การเลือกระหว่างสองคำสั่งนี้จึงขึ้นอยู่กับว่าคุณต้องการพิมพ์ทันที หรือเก็บข้อความไว้ใช้ภายหลัง

การสร้างบันทึกและป้ายกำกับ

String.format มีประโยชน์สำหรับบรรทัดบันทึก ป้ายกำกับในส่วนติดต่อผู้ใช้ และชื่อไฟล์ที่ต้องใช้รูปแบบอย่างแม่นยำ

การรวมรูปแบบไว้ที่เดียวหมายความว่า การเปลี่ยนแปลงเพียงครั้งเดียวจะอัปเดตทุกข้อความ

public class Main {
    public static void main(String[] args) {
        int code = 404;
        String log = String.format("[ERROR %d] not found", code);
        System.out.println(log);
    }
}

กฎชนิดข้อมูลยังคงเดิม

กฎการจับคู่ตัวระบุรูปแบบกับค่ายังคงเหมือนเดิมทุกประการ ได้แก่ %d ต้องใช้กับจำนวนเต็ม %f ต้องใช้กับค่าจุดลอยตัว และการจับคู่ไม่ตรงกันจะโยนข้อยกเว้นขณะทำงาน

ตรวจสอบการจับคู่ให้รอบคอบก่อนเรียกใช้

ตรวจสอบอย่างรวดเร็ว

String.format แตกต่างจาก printf อย่างไร

ทบทวน

String.format ใช้กฎเดียวกับ printf แต่ส่งคืน String ที่คุณสามารถจัดเก็บ ส่งคืน หรือใช้ซ้ำได้

ถัดไป คุณจะนำความกว้างและการจัดแนวมารวมกันเพื่อสร้างตารางที่เป็นระเบียบ

คำถามที่พบบ่อย

บทเรียน “String.format” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “String.format” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “String.format”

สร้างสตริงตามรูปแบบ คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “String.format” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. พื้นฐาน printf
  2. รูปแบบตัวเลขและทศนิยม
  3. String.format
  4. การจัดแนวตาราง
← กลับไปที่ Java Academy