ในบทความนี้จะอธิบายถึงเทคนิคต่าง ๆ ที่ใช้ตัวแปรสตริง ไม่ว่าจะเป็นการตัดคำ การแทนที่คำ การแบ่งคำ และการรวมอะเรย์ไว้ให้เป็นตัวแปรสตริง ซึ่งจะเป็นประโยชน์อย่างมากในการเขียนภาษา Perl โดยรายละเอียดต่าง ๆ อยู่ด้านล่างนี้แล้ว...
การตัดคำ คือ การเลือกตัดคำจากสตริงในตำแหน่งตามที่ต้องการ มีรูปแบบการใช้งานดังนี้
# substr(ตัวแปรที่จะตัดคำ, ตำแหน่งเริ่ม, จำนวนที่ต้องการ ถ้าไม่ใส่คือเอาหมดหลังจากตำแหน่งเริ่ม); # เช่น $a = "Welcome to Perl!\n"; print substr($a, 0, 7); # แสดงผล "Welcome" print substr($a, 7); # แสดงผล "to Perl!\n" print substr($a, -6, 4); # แสดงผล "Perl" (-6 หมายความว่า เริ่มจากตำแหน่งสุดท้ายมาก 6 ตำแหน่ง)
การแทนที่คำ เป็นการใช้งานร่วมกับการตัดคำ นั่นก็คือ ตัดคำในตำแหน่งที่ต้องการออก แล้วแทนด้วยสตริงที่ต้องการ
# substr(ตัวแปรสตริง, ตำแหน่งที่เริ่มตัด, จำนวนที่ต้องการ) = "สตริงที่ต้องการแทนเข้าไป" # เช่น $a = "Welcome to Java!\n"; substr($a, 11, 4) = "Perl"; # หมายความว่า ตัดเอาคำตั้งแต่ตำแหน่งที่ 11 ไปจำนวน 4 ตัวออกไป # นั่นก็คือ Java แล้วแทนคำว่า Perl เข้าไป # เพราะฉะนั้น $a = "Welcome to Perl!\n" substr($a, 7, 3) = ""; # หมายความว่า ตัดเอาคำตั้งแต่ตำแหน่งที่ 7 ไปจำนวน 3 ตัวออกไป # นั่นก็คือ "to " แล้วแทนด้วยคำว่า "" เข้าไป # เพราะฉะนั้น $a = "Welcome Perl!\n" substr($a, 0, 0) = "Hello, "; # หมายความว่า ตัดคำตั้งแต่ตำแหน่งที่ 0 ออกไป 0 ตัว # นั่นก็คือไม่ต้องตัดเอาคำใดออก แล้วแทนด้วยสตริง "Hello, " # เพราะฉะนั้น $a = "Hello, Welcome Perl!\n"
เป็นการแบ่งคำจากตัวแปรสตริงตาม Pattern ที่กำหนด เพื่อเก็บสตริงที่ได้จากการแบ่งไปไว้ในอะเรย์
# split(/อักขระที่ต้องการเป็นตัวแบ่งคำ/, ตัวแปรที่ต้องการแบ่ง, จำนวนที่ต้องการ)
# เช่น
$a = "Hello, Welcome Perl\n";
@a = split(/ /, $a);
# เป็นการแบ่งคำเมื่อเจอช่องว่าง 1 ช่อง (/ /) เพราะฉะนั้น @a = ("Hello,", "Welcome", "Perl\n")
@a = split(/ /, $a, 2);
# เป็นการแบ่งคำเมื่อเจอช่องว่าง 1 ช่อง (/ /) โดยต้องการแค่จำนวน 2 ตัว
# เพราะฉะนั้น @a = ("Hello,", "Welcome")
การรวมอะเรย์ไว้ในสตริง เป็นการรวมสมาชิกอะเรย์ให้กลายเป็นสตริง โดยสามารถกำหนดตัวคั่น (Separate) ได้ตามต้องการ
# join('ตัวคั่นที่ต้องการ', ตัวแปรอะเรย์);
# เช่น
@a = ("Hello,", "Welcome", "Perl!\n");
$a = join(' ', @a);
# คือรวมค่าทั้งหมดในอะเรย์ โดยคั่นด้วย ' ' (ช่องว่าง 1 ช่อง) ดังนั้น $a = "Hello, Welcome Perl!\n"
$b = join(' and ', @a);
# $b = "Hello, and Welcome and Perl!\n"
$c = join('', @a);
# $c = "Hello,WelcomePerl!\n"
Login
Search