Ruby :: Converting between Characters and Values

Posted by PunNeng, Thu Mar 29 02:51:00 UTC 2007

ถ้าอยากจะดู ASCII code ของอักขระแต่ละตัว เราสามารถทำได้โดยใช้ ? วางไว้ข้างหน้าอักขระนั้นๆ เช่น

?a                       # => 97 
?!                       # => 33 
?\n                       # => 10

ถ้าจะดูในรูปของ Array ก็จะได้ดังนี้

'a'[0]                   # => 97 
'bad sound'[1]           # => 97

แต่ในทางกลับกัน เราสามารถเอา ASCII code แปลงกลับเป็นอักขระได้โดยการเรียก #chr method

97.chr                   # => "a" 
33.chr                   # => "!" 
10.chr                   # => "\n" 
0.chr                    # => "\000" 
256.chr                  # RangeError: 256 out of char range

ถ้าสมมติว่าเราไม่มองมันเป็น array ตัว string มันก็จะเหมือนกับการเอา Fixnum ตัวนึง มาเรียงต่อๆ กัน แต่ต้องเป็น ASCII code แล้วใช้ String#each_byte loop มันต่อกันจะออกมาเป็นตัวอักษรเอง

แก้ไขล่าสุด วันที่ 6 สิงหาคม 2550 เวลา 22.29 น.

Filed Under: Ruby | Tags: howto ruby string

Comments

Have your say

A name is required. You may use HTML in your comments.




codegent: we're hiring