Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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

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

  • 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]