Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

文字列を一文字、一行、一バイト単位で処理する

文字列を一文字、一行、一バイト単位で処理するメソッドがあります。
メソッド名はそれぞれ

  • chars
  • lines
  • bytes

です。
それでは早速

> str = <<EOS
123
456
789
abc
EOS
=> "123\n456\n789\nabc\n"

という文字列を試しに作って、
chars、lines、bytesの挙動をみていきましょう。

> str
=> "123\n456\n789\nabc\n"
> str.lines
=> #<Enumerator: "123\n456\n789\nabc\n":lines>
> str.lines.map {|line| puts line.upcase}
123
456
789
ABC
=> [nil, nil, nil, nil]
> str.chars.map {|line| puts line.upcase}
1
2
3

4
5
6

7
8
9

A
B
C

=> [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]
> str.bytes.map {|line| puts line}
49
50
51
10
52
53
54
10
55
56
57
10
97
98
99
10
=> [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil]