Java:
การแทรกค่าลงในสตริง
วิธีการ:
Java ได้เ introduced String.format() สำหรับการแทรกสตริง:
public class StringInterpolationExample {
public static void main(String[] args) {
String user = "Alice";
int points = 1337;
String greeting = String.format("Hi, %s! You have %d points.", user, points);
System.out.println(greeting);
}
}ตัวอย่างผลลัพธ์:
Hi, Alice! You have 1337 points.สำหรับการแทรกสตริงสมัยใหม่ตั้งแต่ Java 15, เราใช้ text blocks และ formatted():
public class ModernStringInterpolationExample {
public static void main(String[] args) {
String user = "Bob";
double accountBalance = 1234.56;
String message = """
Dear %s,
Your current balance is $%.2f.
""".formatted(user, accountBalance);
System.out.println(message);
}
}ตัวอย่างผลลัพธ์:
Dear Bob,
Your current balance is $1234.56.ลงลึก
ก่อนมีการแทรกสตริง, Java พึ่งพาการต่อสตริง: String greeting = "Hello, " + user + "!";. เป็นอะไรที่ลำบากและเสี่ยงต่อข้อผิดพลาด, โดยเฉพาะเมื่อสตริงมีความซับซ้อน
ในอดีต, ภาษาเช่น Perl และ PHP มีการแทรกสตริง Java ตามทันในเวลาหลังมาก String.format() และ PrintStream.printf() เสนอความสามารถที่คล้ายกัน, โดยใช้ตัวกำหนดรูปแบบที่บอก Java วิธีการจัดการตัวแปร
ทางเลือกอื่น? นอกจาก String.format(), เรายังมี MessageFormat และ StringBuilder, แต่พวกมันไม่สะดวกเหมือนกันสำหรับการแทรกสตริงพื้นฐาน ตั้งแต่ Java 15, text blocks ได้ทำให้สตริงหลายบรรทัดเรียบง่ายขึ้นและเพิ่ม formatted() เพื่อง่ายต่อการแทรกสตริงโดยตรงในตำแหน่ง
ในแง่ของการทำงาน, String.format() ใช้ Formatter, เครื่องมือที่มีความสามารถมากมายในการจัดรูปแบบ แต่ระวัง, สตริงที่ซับซ้อนอาจทำให้ประสิทธิภาพแอปของคุณตกต่ำได้หากคุณไม่ระมัดระวัง