LoginSignup
0
0

More than 1 year has passed since last update.

stripメソッドとそれに関連するメソッドのまとめ

Posted at

rubysilverを勉強するためのサイトのRexを勉強してわからなかったメソッドがあったので備忘録として残しておきます
https://rex.libertyfish.co.jp/

Stripメソッド

stripという英語の意味は、「剥ぎ取る」という意味です
結論からいうと、文字列先頭と末尾の空白文字を全て取り除いた文字列を生成して返すメソッドなんです。
ruby 公式ドキュメントより

このリファレンスに書いてあるのですが、「空白文字の定義は " \t\r\n\f\v"」と書いてあるんです。
そこで思ったのが、「\t\r\n\f\v」ってなに?って思ったんですよね。
(この文字列の中にスペースも入ってるのでご注意を)

ここで大事になるのが、正規表現についての知識が必要になるんですよね。
よく調べたら、これがrubyの公式ドキュメントに載っていたんです。さすが公式ドキュメントですね!

image.png

こんなふうにまとまっているんですね!めちゃわかりやすい!

1つ1つ順に説明していきますね!
\tは水平タブを表しています。水平タブって言われるとピンと来ないかもしれないですが、僕らにパソコンについてるtabキーのことです。

\vは調べたのですが、ぶっちゃけよく分からなかったです。ただ、wikipediaを調べると、今はもうほぼ使われていないそうです。(わかる方いらっしゃいましたら、ご教示いただけると嬉しいです)

\r,\n,\r\nは改行という意味です。意味はすべて同じです。では何が違うのかというと、動くOSが違うというところが挙げられます。
\rはmac,\nはUNIX全般, \r\nはwindows系全般です。
こちらの記事が参考になるとおもいますので、ぜひ参考にしてみてください!

\fは文字通り、ページを改めるということです。新しいページに移るということです。wordで作業したことがある方ならピンとくるかもしれないですね!

このように、stripメソッドは、これらの空白文字が文字列の先頭や末尾にあったら、取り除いてくれるというものです。

p "  abc  \r\n".strip    #=> "abc"
p "abc\n".strip          #=> "abc"
p "  abc".strip          #=> "abc"
p "abc".strip            #=> "abc"


str = "\tabc\n"
p str.strip              #=> "abc"
p str                    #=> "\tabc\n" (元の文字列は変化しない)

なんとなく見ればわかるかとおもいます。スペースは\tのことですね。

lstripメソッド

stripメソッドに関連するメソッドとして、lstripメソッドがあります。
このメソッドは、文字列の先頭にある空白文字を全て取り除いた新しい文字列を返します。空白の定義は、同じく「\t\r\n\f\v」です。
stripメソッドとの違いは、末尾の空白は取り除かないということです。
lstripの「l」はleadのlだとおもわれます。leadは先頭っていう意味なので、覚えやすいですね。

p "  abc\n".lstrip     #=> "abc\n"
p "\t abc\n".lstrip    #=> "abc\n"
p "abc\n".lstrip       #=> "abc\n"

rstripメソッド

rstripメソッドの特徴は、文字列の末尾にある空白文字をすべて取り除いた新しい文字列を返すというものです。空白文字の定義は、
「 \t\r\n\f\v\0」
0があることが他のメソッドと違うところですね!

今後の課題としては、\0が何を表しているかを調べていくことです!
(わかる方いらっしゃいましたら、ご教示いただけますと幸いです。)

以上です!

0
0
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0