แม้ว่าสายทั้งสองจะดูเหมือนกันสำหรับคุณ แต่ก็อาจไม่เหมือนกัน ตัวอย่างเช่น อาจมีช่องว่างนำหน้าและต่อท้าย คอมพิวเตอร์ "มองเห็น" แต่เราไม่เห็น Java มี เมธอด trim() พิเศษ เพื่อลบช่องว่างที่ต่อท้ายและนำหน้าออกจากสตริง ในบทความนี้ เราจะอธิบายวิธีการใช้เมธอด Java string trim()ในโปรแกรม Java และให้ตัวอย่างโค้ดบางส่วน

ลายเซ็นเมธอด Java String trim()

ลายเซ็นต์ของ เมธอด trim()ใน Java มีดังนี้:

public String trim()
อย่างที่คุณเห็น มันไม่ต้องใช้พารามิเตอร์และส่งกลับค่าสตริง โดยจะส่งคืนสำเนาของสตริงต้นฉบับ แต่จะลบช่องว่างนำหน้าและต่อท้ายทั้งหมดออก หมายเหตุสำคัญ: ช่องว่างคืออักขระใดๆ ที่มีรหัส ASCII น้อยกว่าหรือเท่ากับ 'U + 0020' หากสตริง ของเรา เป็นลำดับอักขระว่าง หรืออักขระตัวแรกและตัวสุดท้ายของลำดับอักขระที่แสดงโดย ออบเจ็กต์ String นี้ มีโค้ดที่ไม่ใช่ช่องว่าง (ตามที่กำหนดไว้ข้างต้น) การอ้างอิงถึง ออบเจ็กต์ String นี้ จะถูกส่งกลับ ถ้าอักขระทั้งหมดในสตริงของเราเป็นช่องว่าง ดังนั้น วัตถุ Stringจะถูกส่งกลับโดยเป็นตัวแทนของสตริงว่าง หากไม่มีช่องว่างที่จุดเริ่มต้นและจุดสิ้นสุดของบรรทัด เมธอดจะส่งคืนบรรทัดนั้นโดยไม่มีการเปลี่ยนแปลง

ตัวอย่างวิธีการตัดแต่งสตริง Java ()

ลองมีสองสายโดยมีและไม่มีช่องว่างที่จุดเริ่มต้นและจุดสิ้นสุดของข้อความ ข้อความจะเหมือนกันสำหรับสตริงทั้งสอง

 public class TrimDemo {
   public static void main(String[] args) {
//java string trim() method example 
      
       String noSpacesString = "I am the Walrus";
       String withSpaceString = "    I am the Walrus ";

       //printing the both strings out to make sure they are different
       System.out.println(noSpacesString);
       System.out.println(withSpaceString);
       //let's print out two string comparisons. It's false
       //because they are different
       System.out.println(noSpacesString.equals(withSpaceString));
       //trim
       withSpaceString.trim();
       System.out.println(noSpacesString.equals(withSpaceString));
       System.out.println(noSpacesString);
       System.out.println(withSpaceString);
   }
}
ผลลัพธ์คือ:
ฉันเป็นวอลรัส ฉันเป็นวอลรัส เท็จ ฉันเป็นวอลรัส ฉันเป็นวอลรัส
รออะไร?? ดูเหมือนว่าเมธอด Java string trim()ใช้งานไม่ได้! สองสตริงแรกมีความแตกต่างกันตามที่ควรจะเป็น (สตริงแรกไม่มีระยะขอบ สตริงที่สองมีช่องว่างด้านหน้าสามช่อง และอีกหนึ่งสตริงอยู่หลังข้อความ) จากนั้นเราเปรียบเทียบสองบรรทัดแล้วพิมพ์ผลลัพธ์ออกมา เห็นได้ชัดว่าเป็นเท็จเนื่องจากบรรทัดเหล่านี้แตกต่างกัน หลังจากนั้น เราใช้วิธีการตัดแต่งกับสตริงที่มีช่องว่างตามขอบ และเปรียบเทียบสตริงอีกครั้ง ... และด้วยเหตุผลบางอย่าง เราพบเท็จอีกครั้ง แม้ว่าตอนนี้มันควรจะเหมือนเดิมแล้ว! จากนั้น ในกรณีที่เราตัดสินใจพิมพ์บรรทัดเอง จะเกิดอะไรขึ้นหากปาฏิหาริย์เกิดขึ้น? อนิจจา... เส้นแตกต่างออกไปและยังคงอยู่ คุณได้เดาแล้วว่าปัญหาคืออะไร? ประเด็นก็คือสตริงใน Java เป็นวัตถุที่ไม่เปลี่ยนรูป ดังนั้น เมธอด trim()จะส่งคืนไม่ใช่สตริงเดิม แต่เป็นสตริงใหม่ อย่างไรก็ตาม เราควรทดสอบ เมธอด trim()ที่นี่ ดังนั้นเรามาเขียนโปรแกรมอื่นกันดีกว่า ที่นี่เราจะตั้งชื่อสำเนาของสตริงที่สร้างขึ้นโดยใช้เมธอดtrim()ที่จะใช้งาน ลองตรวจสอบทั้งสองสายเพื่อความเท่าเทียมกันด้วย

public class TrimDemo2 {
   public static void main(String[] args) {
       String noSpacesString = "I am the Walrus";
       String withSpaceString = "    I am the Walrus ";
       String result = withSpaceString.trim();
       System.out.println(noSpacesString);
       System.out.println(result);
       System.out.println(noSpacesString.equals(result));
   }
}
นี่คือผลลัพธ์:
ฉันคือวอลรัส ฉันเป็นวอลรัสที่แท้จริง
บิงโก! ตอนนี้มันทำงานได้ตามที่เราคาดไว้ จำเกี่ยวกับ ความไม่เปลี่ยนรูป ของ Stringไว้ มันสำคัญมากสำหรับ Java Developer ทุกคน