String クラス
参考:
class String | Ruby リファレンスマニュアル [公式]
目次
- 1 使い方
- 2 length / size
- 3 slice
- 4 []=
- 5 rstrip / rstrip!
- 6 chomp / chomp!
- 7 chop / chop!
- 8 strip / strip!
- 9 start_with?
- 10 end_with?
- 11 casecmp
- 12 upcase / upcase!
- 13 downcase / downcase!
- 14 連結
- 15 文字列の繰り返し
- 16 split
- 17 delete_prefix / delete_prefix!
- 18 delete_suffix / delete_suffix!
- 19 部分的に削除する
- 20 英数字以外を取り除く
- 21 クォーテーションを取り除く
- 22 括弧を取り除く
- 23 括弧付きの数字を取り除く
- 24 ljust / rjust
- 25 delete / delete!
- 26 each_line
- 27 lines
- 28 各行を逆順に処理する
- 29 index
- 30 rindex
- 31 reverse / reverse!
- 32 変換
- 33 ord / chr
- 34 codepoints / each_codepoint
- 35 pack / unpack
- 36 バイト列に変換する
- 37 ANSI エスケープシーケンスを取り除く
- 38 まとめ/Tips
- 39 Sterile
使い方
参考:
How To Work with String Methods in Ruby | DigitalOcean
length / size
参考:
String#length | Ruby リファレンスマニュアル [公式]
slice
参考:
String#[] | Ruby リファレンスマニュアル [公式]
string slice index: str[n..infinity] – Stack Overflow
[]=
文字列の一部を置き換える。
参考:
String#[]= | Ruby リファレンスマニュアル [公式]
rstrip / rstrip!
rstrip
は末尾の改行を取り除いた新しい文字列を返す。
rstrip!
はレシーバ自身の文字列から末尾の改行を取り除く。変更があった場合はレシーバ自身を、変更がない場合は nil
を返す。
参考:
String#rstrip | Ruby リファレンスマニュアル [公式]
String#rstrip! | Ruby リファレンスマニュアル [公式]
chomp / chomp!
参考:
String#chomp | Ruby リファレンスマニュアル [公式]
String#chomp! | Ruby リファレンスマニュアル [公式]
末尾の1文字ではなく、指定した文字列を取り除きたい。- teratail
chop / chop!
参考:
String#chop | Ruby リファレンスマニュアル [公式]
String#chop! | Ruby リファレンスマニュアル [公式]
strip / strip!
参考:
String#strip | Ruby リファレンスマニュアル [公式]
String#strip! | Ruby リファレンスマニュアル [公式]
start_with?
str.start_with?("prefix")
文字列の先頭が引数 prefix
の文字列で始まっていれば true
、そうでなければ false
を返す。
参考:
String#start_with? | Ruby リファレンスマニュアル [公式]
Ruby の文字列マッチ判定のパフォーマンス | Yuichi Takada
end_with?
str.end_with?("suffix")
文字列の末尾が引数 suffix
の文字列で終わっていれば true
、そうでなければ false
を返す。
参考:
String#end_with? | Ruby リファレンスマニュアル [公式]
casecmp
str.casecmp(other_str)
大文字小文字の区別をしないで比較する。
参考:
String#casecmp | Ruby リファレンスマニュアル [公式]
upcase / upcase!
参考:
String#upcase | Ruby リファレンスマニュアル [公式]
String#upcase! | Ruby リファレンスマニュアル [公式]
downcase / downcase!
参考:
String#downcase | Ruby リファレンスマニュアル [公式]
String#downcase! | Ruby リファレンスマニュアル [公式]
連結
参考:
Ruby の文字列連結に関して知っておくべきこと – Qiita
Ruby での文字列出力に「#+」ではなく式展開「#{}」を使うべき理由 | TechRacho
Ruby で文字列を連結・追加するメソッド「+」「concat」を使い分ける | レビューログ
文字列の繰り返し
参考:
文字列を指定の回数繰り返した新しい文字列を作成 | Let’s プログラミング (javadrive.jp)
split
参考:
String#split | Ruby リファレンスマニュアル [公式]
delete_prefix / delete_prefix!
参考:
String#delete_prefix | Ruby リファレンスマニュアル [公式]
String#delete_prefix! | Ruby リファレンスマニュアル [公式]
delete_suffix / delete_suffix!
参考:
String#delete_suffix | Ruby リファレンスマニュアル [公式]
String#delete_suffix! | Ruby リファレンスマニュアル [公式]
部分的に削除する
部分的に取り除く、もしくは、部分的に取り出す操作に使うメソッド
delete
/delete!
delete_prefix
/delete_prefix!
delete_suffix
/delete_suffix!
slice
/[]
/slice!
chop
/chop!
chomp
/chomp!
strip
/strip!
lstrip
/lstrip!
rstrip
/rstrip!
sub
/sub!
gsub
/gsub!
partition
rpartition
split
squeeze
/squeeze!
参考:
Ruby 文字列から文字を削除するメソッドまとめ | code161
chomp、chop、strip、gsub による改行の削除徹底比較! | 侍エンジニア塾ブログ
文字列中に存在する必要のない空白を削除する方法 – Qiita
What is the easiest way to remove the first character from a string? – Stack Overflow
英数字以外を取り除く
参考:
How do I strip non alphanumeric characters from a string and keep spaces? – Stack Overflow
Stripping non-alphanumeric chars but leaving spaces in Ruby – Stack Overflow
クォーテーションを取り除く
参考:
How to strip leading and trailing quote from string, in Ruby – Stack Overflow
Remove double quotes from string – Stack Overflow
括弧を取り除く
参考:
How do I strip parenthesis from a string in Ruby? – Stack Overflow
括弧付きの数字を取り除く
参考:
Using Regex to remove brackets and parentheses from a string | George Gore
ljust / rjust
参考:
String#ljust | Ruby リファレンスマニュアル [公式]
String#rjust | Ruby リファレンスマニュアル [公式]
delete / delete!
参考:
String#delete | Ruby リファレンスマニュアル [公式]
String#delete! | Ruby リファレンスマニュアル [公式]
each_line
一行ずつ繰り返し処理する。
参考:
String#each_line | Ruby リファレンスマニュアル [公式]
lines
参考:
Ruby で文字列を改行コードで区切る | valid, invalid
String#lines | Ruby リファレンスマニュアル [公式]
各行を逆順に処理する
lines.each_line.reverse_each do |line| puts line end
参考:
String#each_line | Ruby リファレンスマニュアル [公式]
Enumerable#reverse_each | Ruby リファレンスマニュアル [公式]
How can I efficiently processing lines in a string in reverse order in Ruby? – Stack Overflow
index
文字列を順方向に探索する。
参考:
String#index | Ruby リファレンスマニュアル [公式]
rindex
文字列を逆方向に探索する。
参考:
String#rindex | Ruby リファレンスマニュアル [公式]
reverse / reverse!
文字の並びを逆順にする。
参考:
Ruby で文字列を部分的に反転させる | コンパイラかく語りき
String#reverse | Ruby リファレンスマニュアル [公式]
String#reverse! | Ruby リファレンスマニュアル [公式]
変換
to_i
:整数に変換するto_f
:浮動小数点型に変換するto_sym
:シンボル値に変換する
参考:
String#to_i | Ruby リファレンスマニュアル [公式]
String#to_f | Ruby リファレンスマニュアル [公式]
String#intern | Ruby リファレンスマニュアル [公式]
ord / chr
ord
:最初の文字のコードポイントを返す。chr
:最初の一文字を返す。もしくは、数値を文字に変換する。
参考:
Ruby で Integer と文字を相互変換する – Qiita
ord メソッドと chr メソッドで、1文字とコードポイントの変換 | コンパイラかく語りき
String#ord | Ruby リファレンスマニュアル [公式]
String#chr | Ruby リファレンスマニュアル [公式]
Integer#chr | Ruby リファレンスマニュアル [公式]
Converting UTF-8 codepoints to characters | makandra dev
Ruby の ord メソッドは何の略称ですか? – スタック・オーバーフロー
codepoints / each_codepoint
参考:
Ruby で文字列の Unicode コードポイントと \uXXXX 表記用の 16 進数を得る | @kyanny’s blog
Ruby でコードポイントから絵文字に変換 | 尋常でないもふもふ
String#codepoints | Ruby リファレンスマニュアル [公式]
String#each_codepoint | Ruby リファレンスマニュアル [公式]
pack / unpack
参考:
Ruby にて文字と Unicode コードポイントの相互変換を行う | vivid memo
pack テンプレート文字列 | Ruby リファレンスマニュアル [公式]
Array#pack | Ruby リファレンスマニュアル [公式]
String#unpack | Ruby リファレンスマニュアル [公式]
String#unpack1 | Ruby リファレンスマニュアル [公式]
バイト列に変換する
unpack
を使う。
str.unpack("C*")
もしくは、bytes
を使う。
str.bytes
繰り返し処理をする場合は、each_byte
を使う。
str.each_byte do |b| puts b end
参考:
Ruby でバイナリ文字列を int に変換するやつの高速化 – Qiita
String#bytes | Ruby リファレンスマニュアル [公式]
文字列中のバイトを取り出すにはどうすればよい? – teratail
ANSI エスケープシーケンスを取り除く
str.gsub(/\e[(d+)m/, "")
参考:
ANSI Escape Sequence の削除 – Qiita
まとめ/Tips
参考:
How to Work with Strings in Ruby | DigitalOcean
Always Use Double-quoted Strings in Ruby | Anti-pattern
Sterile
参考: