環境
Rails 6.0.1
Ruby 2.6.3
PostgreSQL 11.16
String[]
[]
の中にRange
オブジェクトを指定できる。
str[f..-1]
は「f文字目から文字列の最後まで」を表す慣用句
message = 'こんにちは、山田さん'
message[2 .. -1]
=> "にちは、山田さん"
ハッシュタグ検索を実装したいときに使えそう
keywords = '#今日のコーデ'
if keywords.start_with?('#')
search_keywords = keywords[1..-1]
end
# 検索の処理が続く
追記①
コメントで教えていただきましたが、
Ruby 2.6 以降なら「終端の無い Range リテラル」が使えるため下記のように書ける。
(Ruby 2.6 系は公式サポートが終了しているので注意)
keywords = '#今日のコーデ'
if keywords.start_with?('#')
search_keywords = keywords[1..]
end
# 検索の処理が続く
追記②
コメントで教えていただきましたが、delete_prefix
を使ったほうが処理がわかりやすくて良さそう。
keywords = '#今日のコーデ'
if keywords.start_with?('#')
search_keywords = keywords.delete_prefix('#')
end
# 検索の処理が続く
参考