Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

การพิมพ์จำนวนเต็มระหว่างสตริงใน Java: String Concatenation

การรวมสตริงกับตัวเลขใน Java

Java ใช้ + สำหรับทั้งการบวกตัวเลขและการต่อสตริง (String Concatenation) ซึ่งทำงานจากซ้ายไปขวา

ตัวอย่างโค้ด

public class Demo { 
    public static void main(String[] args) { 
        System.out.println("เครื่องหมาย = อยู่ระหว่างค่าคำนวณสองค่า"); 
        
        // คำนวณก่อน แล้วต่อสตริง
        System.out.println(45 + 5 + "=" + (56 + 11)); 
        
        // ใช้ข้อความแทนเครื่องหมาย
        System.out.println(45 + 5 + " equals " + (56 + 11)); 
    } 
}

ผลลัพธ์

เครื่องหมาย = อยู่ระหว่างค่าคำนวณสองค่า
50=67
50 equals 67

คำอธิบายลำดับการทำงาน

45 + 5 + "=" + (56 + 11)
// ขั้นตอน:
1. 45 + 5 = 50 (int + int = int)
2. 50 + "=" = "50=" (int + String = String)
3. (56 + 11) = 67 (int + int = int) - คำนวณในวงเล็บก่อน
4. "50=" + 67 = "50=67" (String + int = String)

จุดสำคัญ: Operator Precedence และ Associativity

  • () มี precedence สูงสุด → คำนวณก่อน
  • + (numeric) และ + (string) มี precedence เท่ากัน → Left-to-right associativity
  • เมื่อเจอ String operand → ทุกอย่างต่อจากนั้นจะกลายเป็น String concatenation

ตัวอย่างคับคั่ง

System.out.println(1 + 2 + "3");  // "33"  (1+2=3, "3"+"3"="33")
System.out.println("1" + 2 + 3);  // "123" ("1"+"2"="12", "12"+"3"="123")
System.out.println(1 + 2 + 3);    // 6 (ทั้งหมดเป็น int)
System.out.println(1 + (2 + "3")); // "123" (วงเล็บบังคับให้ 2+"3" ก่อน)

Best Practices

  • ใช้ String.format() หรือ StringBuilder สำหรับการต่อสตริงซับซ้อน
  • ใช้วงเล็บ () คั่นการคำนวณตัวเลขให้ชัดเจน
  • หลีกเลี่ยงการผสม + ตัวเลขและสตริงใน statement เดียวโดยไม่มีวงเล็บ

String.format ตัวอย่าง

System.out.println(String.format("%d + %d = %d", 45+5, 56+11, 45+5+56+11)); 
// 50 + 67 = 117