0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

splitメソッドとそれに関連するメソッドの解説

Posted at

image.png

ruby silverの勉強をしていく中で間違えたところがあったのでその解説記事を挙げていきます。

#splitメソッド
指定した文字列で分割し、それを配列で返すメソッドです。
基本構文は、

"文字列".split(区切り文字, 分割数)

論より証拠ということで、実際にコードを見ていきましょう

'Yamada, Satou, Itou, Suzuki'.split(',')
=> ["Yamada", " Satou", " Itou", " Suzuki"]


'Yamada, Satou, Itou, Suzuki'.split('u')
=> ["Yamada, Sato", ", Ito", ", S", "z", "ki"]

1個目の例でいえば、対象の文字列には、「,」があるので、,を目印に区切っていくメソッドなんですね
2個目の例でいえば、「u」を目印に文字列を区切っていくようなメソッドです。

##分割数の指定
分割数を指定することもできます。

'Yamada, Satou, Itou, Suzuki'.split(',', 2)
=> ["Yamada", " Satou, Itou, Suzuki"]


'Yamada, Satou, Itou, Suzuki'.split('u', 2)
=> ["Yamada, Sato", ", Itou, Suzuki"]

また、分割数を制限することもできるんです。

'Yamada, Satou, Itou, Suzuki'.split(',').first
=> "Yamada"

##正規表現とも組み合わせることが可能

'Yamada, Satou, Itou, Suzuki'.split(/[a | u ]/)
=> ["Y", "m", "d", ",", "S", "to", ",", "Ito", ",", "S", "z", "ki"]

正規表現に関しては、こちらのサイトを参照してみてください!

##1バイトの空白文字がある場合
1バイトの空白文字とは、文字列の半角スペースのことをいいます。

この場合、その文字列の先頭と末尾の空白文字を除いてくれて、さらに、空白文字に一致する部分で分割します。
補足でいうと、改行(\n)、タブ(\t)、nilも対象になります。

'Yama da Sat ou It ou Su zuki'.split(' ')
=> ["Yama", "da", "Sat", "ou", "It", "ou", "Su", "zuki"]

##今回の問題の正解
()で囲われたものを含んだ結果を返すんですね。なので、

["Apple", "-", "Banana", "-", "Lemon"]

が正解ですね

ちなみに、以下のようにすると答えはまた変わりますね

p "Apple-Banana-Lemon".split('-')
=> ["Apple", "Banana", "Lemon"]

#類似メソッド
##String#partitionメソッド

[最初のセパレータより前の部分, セパレータ, それ以降の部分] の 3 要素の配列を返します。 by公式ドキュメント

セパレータって何?って方は、こちらの記事を読んでみてください

要は、[最初にヒットした場所より前の場所、最初にヒットした場所、それ以降の部分]ってことです。
実際にコードを見ていきましょう

p 'Ishida Keisuke'.partition('s')
=> ["I", "s", "hida Keisuke"]


p 'Ishida Keisuke'.partition('x')
=> ["Ishida Keisuke", "", ""]
ヒットしなかった場合は、第2要素、第3要素は空文字になる。

あまり、partitionメソッドは使われていないような気がしますね
今回はこの辺で終わりにします!
何か間違いがございましたら、ご教示いただけますと幸いです。

【参考文献】

0
0
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?