文字列を分割する
【開発環境】
OS:Win10(64ビット)
Ruby 3.0.1
VSCodeバージョン: 1.57.1
【splitメソッド】
文字列を指定の文字や正規表現を使って分割する方法として、splitメソッドを使う
・書式
split([sep[, limit]])
1番目の引数に指定したパターンに従って文字列を分割し、分割された各部分文字列を要素とする配列を取得します。
例文
str = "Tokyo,Osaka,Nagoya,Fukuoka"
strAry = str.split(",")
カンマ(,)で文字列を分割して結果を配列に格納する。
配列には["Tokyo", "Osaka", "Nagoy", "Fukuoka"]のように区切り文字が取り除かれた状態で格納される
1文字ずつ分割する場合
str = "Tokyo"
strAry = str.split(//)
【分割数を制限する】
「split」メソッドの2番目の引数を使って分割数を制限する。
「limit」に正の整数を指定した場合、分割される最大数となります。また負の整数を指定した場合は無制限となります。省略した場合又は0を指定した場合も無制限となりますが、この場合は分割された結果の配列の末尾に空文字列が含まれる場合は削除されます。
例文1
str = "Tokyo,Osaka,Nagoya,,"
strAry = str.split(",")
上記の場合にはカンマ(,)で文字列を分割して結果を配列に格納しますが配列には["Tokyo", "Osaka", "Nagoy", "Fukuoka"]となり空文字列は削除されます。
例文2
str = "Tokyo,Osaka,Nagoya,,"
strAry = str.split(",", -1)
上記の場合にはカンマ(,)で文字列を分割して結果を配列に格納しますが配列には["Tokyo", "Osaka", "Nagoy", "Fukuoka","",""]となります。
例文3
str = "Tokyo,Osaka,Nagoya,,"
strAry = str.split(",", 2)
上記の場合にはカンマ(,)で文字列を分割して結果を配列に格納しますが最大分割数が「2」に設定されているため配列には["Tokyo", "Osaka,Nagoya,,"]となります。
サンプルプログラム
※コメント投稿者のブログIDはブログ作成者のみに通知されます