String クラス
公式サイト:
class String | Ruby リファレンスマニュアル [公式]
使い方
参考:
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!
行末から改行文字を取り除く。
str = line.chomp
Code language: Ruby (ruby)
ドキュメント:
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")
Code language: Ruby (ruby)
文字列の先頭が引数 prefix
の文字列で始まっていれば true
、そうでなければ false
を返す。
ドキュメント:
String#start_with? | Ruby リファレンスマニュアル [公式]
参考:
Ruby の文字列マッチ判定のパフォーマンス | Yuichi Takada
end_with?
str.end_with?("suffix")
Code language: Ruby (ruby)
文字列の末尾が引数 suffix
の文字列で終わっていれば true
、そうでなければ false
を返す。
ドキュメント:
String#end_with? | Ruby リファレンスマニュアル [公式]
casecmp
str.casecmp(other_str)
Code language: Ruby (ruby)
大文字小文字の区別をしないで比較する。
ドキュメント:
String#casecmp | Ruby リファレンスマニュアル [公式]
upcase / upcase!
ドキュメント:
String#upcase | Ruby リファレンスマニュアル [公式]
String#upcase! | Ruby リファレンスマニュアル [公式]
downcase / downcase!
ドキュメント:
String#downcase | Ruby リファレンスマニュアル [公式]
String#downcase! | Ruby リファレンスマニュアル [公式]
連結
参考:
文字列出力に「#+」ではなく式展開「#{}」を使うべき理由 | TechRacho
文字列を連結/追加するメソッド「+」「concat」を使い分ける | レビューログ
文字列の繰り返し
参考:
文字列を指定の回数繰り返した新しい文字列を作成 | JavaDrive
split
ドキュメント:
String#split | Ruby リファレンスマニュアル [公式]
join
ドキュメント:
Array#join | 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!
参考:
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 – Stack Overflow
クォーテーションを取り除く
参考:
How to strip leading and trailing quote from string – Stack Overflow
Remove double quotes from string – Stack Overflow
括弧を取り除く
参考:
How do I strip parenthesis from a string? – 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 リファレンスマニュアル [公式]
each_char
一文字ずつ処理する。
ドキュメント:
String#each_char | Ruby リファレンスマニュアル [公式]
each_byte
1バイトずつ処理する。
ドキュメント:
String#each_byte | Ruby リファレンスマニュアル [公式]
参考:
lines
ドキュメント:
String#lines | Ruby リファレンスマニュアル [公式]
参考:
文字列を改行コードで区切る | valid, invalid
chars
参考:
String#chars | Ruby リファレンスマニュアル [公式]
各行を逆順に処理する
lines.each_line.reverse_each do |line|
puts line
end
Code language: Ruby (ruby)
ドキュメント:
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!
文字の並びを逆順にする。
ドキュメント:
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
:最初の一文字を返す。もしくは、数値を文字に変換する。
ドキュメント:
String#ord | Ruby リファレンスマニュアル [公式]
String#chr | Ruby リファレンスマニュアル [公式]
Integer#chr | Ruby リファレンスマニュアル [公式]
参考:
ord メソッドと chr メソッドで、1文字とコードポイントの変換 | コンパイラかく語りき
Converting UTF-8 Codepoints to Characters | makandra dev
Ruby の ord メソッドは何の略称ですか? – スタック・オーバーフロー
codepoints / each_codepoint
ドキュメント:
String#codepoints | Ruby リファレンスマニュアル [公式]
String#each_codepoint | Ruby リファレンスマニュアル [公式]
参考:
文字列の Unicode コードポイントと \uXXXX 表記用の 16 進数を得る | @kyanny’s blog
pack / unpack
ドキュメント:
pack テンプレート文字列 | Ruby リファレンスマニュアル [公式]
Array#pack | Ruby リファレンスマニュアル [公式]
String#unpack | Ruby リファレンスマニュアル [公式]
String#unpack1 | Ruby リファレンスマニュアル [公式]
参考:
文字と Unicode コードポイントの相互変換を行う | vivid memo
空行を削除する
lines.gsub!(/^\n/, "")
Code language: Ruby (ruby)
参考:
文書ファイルを読み込んだときに空白行を削除したい | OKE2GOU
バイト列に変換する
unpack
を使う。
str.unpack("C*")
Code language: Ruby (ruby)
もしくは、bytes
を使う。
str.bytes
Code language: Ruby (ruby)
繰り返し処理をする場合は、each_byte
を使う。
str.each_byte do |b|
puts b
end
Code language: Ruby (ruby)
ドキュメント:
String#bytes | Ruby リファレンスマニュアル [公式]
参考:
バイナリ文字列を int に変換するやつの高速化 – Qiita
文字列中のバイトを取り出すにはどうすればよい? – teratail
ANSI エスケープシーケンスを取り除く
str.gsub(/\e[(d+)m/, "")
Code language: Ruby (ruby)
参考:
まとめ/Tips
How to Work with Strings in Ruby | DigitalOcean
Always Use Double-quoted Strings in Ruby | Anti-pattern
Sterile
リポジトリ: