29.ลงลึกกับ string
💬 ในรอบนี้เราจะมาลองทำความเข้าใจเจ้า string กันแบบลึกๆบ้างว่ามันเป็นยังไงกันแน่นะ
🎯 สรุปสั้นๆ
👨🚀 รูปแบบของ string ที่แท้จริง
ตัว string จริงๆมันจะคล้ายๆกับ array แต่มันจะเป็น array ของ char เช่นคำว่า "Hello" มันก็จะเหมือนกับมันเก็บข้อมูลแยกเป็นทีละตัว H, e, l, l, o ตามลำดับ ดังนั้นเราจะสามารถเรียกดูข้อมูลของ string ในแต่ละตำแหน่งได้ เช่น
Read-only collection of Char ตัว collection ของ string เราสามารถเข้าถึงตำแหน่งของมันแต่ละตัวได้ แต่เราไม่สามารถเปลี่ยนแปลงค่ามันได้นะจ๊ะ
IndexOutOfRangeException คือ error เวลาที่เราเรียกข้อมูลใน collection ในตำแหน่งที่มันไม่มีอยู่
string กับ String มันเหมือนกันนะ เพียงแค่ตัว string (ตัวเล็ก) มันเป็นตัวย่อของ class String นี่แหละ
👨🚀 Immutability
ตัว string ที่ถูกสร้างขึ้นมาทุกตัวจะมีความเป็น immutable เสมอ หรือแปลง่ายๆว่า มันแก้ไขเปลี่ยนแปลงอะไรอีกไม่ได้ ถ้าสร้างมันขึ้นมาแล้ว (ไปดูบทถัดไปจะเห็นภาพที่ชัดขึ้น)
👨🚀 Regular & Verbatim
string เวลาใช้งานมันสามารถใช้อักขระพิเศษทำงานด้วยเพื่อให้เกิดการทำงานแบบพิเศษๆได้ เช่น ขึ้นบรรทัดใหม่ด้วย \n หรือเป็นการเว้นยาวๆด้วย \t
ข้อควรระวังในการใช้อักษรพิเศษ โดยปรกติเราไม่ควรจะใช้อักษรพิเศษในการทำงานร่วมกัน string (แม้ว่ามันจะทำงานได้ก็ตาม) เพราะมันจะทำงานได้เฉพาะแค่กับ OS ใด OS นึงเท่านั้น เช่นการขึ้นบรรทัดใหม่ของ Windows กับ Linux หรือ Mac ก็ไม่เหมือนกันละ (ตัวนึงเป็น LF อีกตัวนึงเป็น CRLF) ซึ่งวิธีที่เหมาะสมในการทำงานจริงๆคือการใช้คลาส Environment เข้ามาช่วยนั่นเอง
👨🚀 Environment class
ตัวช่วยในการเลือกของที่เหมาะสมกับสภาพที่โปรแกรมกำลังทำงานอยู่ เช่นถ้าโปรแกรมทำงานอยู่บน Windows มันก็จะเลือกการขึ้นบรรทัดใหม่ในรูปแบบของ Windows แต่ถ้าโปรแกรมทำงานอยู่บนเครื่อง Mac มันก็จะขึ้นบรรทัดใหม่ในรูปแบบเครื่อง Mac ตามตัวอย่างโค้ดด้านล่าง
👨🚀 Format strings
เราสามารถจัดการรูปแบบการแสดงผลของ string ได้หลายรูปแบบ
Placeholder - การเว้นพื้นที่เพื่อระบุว่าพื้นที่นั้นๆจะใช้ค่าอะไรมาใส่
Interpolation - เหมือนกับ placeholder เลย เพียงแค่กำหนดไปเลยว่าจุดนั้นๆใช้ตัวแปรอะไร
String interpolation ใช้ได้กับ C# version 6 ขึ้นไปน่าจ๊า
👨🚀 Method ต่างๆของ string
เจ้าคลาส string มี methods ต่างๆให้เราเล่นเยอะม๊วกๆๆๆๆ ซึ่งถ้าเอามาเขียนในนี้ทั้งหมดผมว่ามันจะยาวเป็นราชโองการในหนังจีนแน่เลย ดังนั้นผมจะขอเอาแค่คราวๆมาให้ดูก็พอ ส่วนถ้าอยากดูทั้งหมดก็ดูได้จากลิงค์นี้เลย Microsoft document
Substring - ตัด string ออกจากกัน โดยต้องระบุตำแหน่งที่จะตัดและจำนวนตัวอักษร
IndexOf - เป็นการค้นหาว่าคำที่ระบุอยู่ในตำแหน่งที่เท่าไหร่
Replace - แก้ไขในข้อความที่กำหนดให้เป็นค่าใหม่
👨🚀 การตรวจสอบ null กับ string ว่าง
การตรวจสอบว่า string มีค่าเป็น null หรือเป็นค่าว่างหรือเปล่า ทาง Microsoft นิยมตรวจสอบโดยใช้ method ที่ชื่อว่า string.IsNullOrWhiteSpace()
Last updated