Ruby文字列メソッド(究極のガイド)
文字列は文字のシーケンスです。
文字列はオブジェクトであるため、文字列を使用して処理を行うために使用できるメソッドが多数あります。
この記事では、最も便利なRuby文字列メソッドについて説明します。 例を挙げて!
コンテンツ
- 1文字列の長さを取得する方法
- 2文字列が空かどうかを確認する方法
- 3文字列補間とは何ですか?
- 4部分文字列を抽出する方法
- 5文字列に別の文字列が含まれているかどうかを確認する方法
- 6Ruby文字列をパディングする方法
- 7大文字と小文字を区別しない文字列の比較
- 8文字列をトリミングして空白を削除する方法
- 9弦のプレフィックスとサフィックス
- 10文字列を文字の配列に変換する
- 11配列を文字列に変換する
- 12文字列を整数に変換する
- 13文字列が数字かどうかを確認する
- 14文字を追加する方法
- 15Rubyで文字列の文字を反復処理する
- 16Rubyで文字列を大文字または小文字に変換する方法
- 17複数行の文字列を作成する方法
- 18Gsubメソッドを使用して文字列内のテキストを置き換える方法
- 19文字列から最後の文字を削除する方法
- 20文字列エンコーディングを変更する方法
- 21文字を数える
- 22まとめ
- 22.1関連
文字列の長さを取得する方法
簡単:
"ruby".size # 4
length
を使用することもできます 、 size
の代わりに 、彼らは同じことをします。
文字列が空かどうかを確認する方法
空の文字列を長さがゼロの文字列として定義します。
このように確認できます :
"".size == 0 # true
または、さらに良いのは、 empty?
を使用することです。 メソッド。
例 :
"".empty? # true
空白の文字列とは、長さがゼロであるか、空白文字のみで構成されている文字列です。
文字列補間とは何ですか?
文字列補間を使用すると、文字列を組み合わせることができます:
name = "Jesus" puts "Hello #{name}"
一部の人々が知らないのは、補間内に実際のコードを含めることができるということです。
次に例を示します:
puts "The total is #{1+1}" # "the total is 2"
Rubyはto_s
を呼び出します 文字列補間ブロックのメソッド。これは、オブジェクトにそれ自体を文字列に変換するように指示します。
部分文字列を抽出する方法
サブストリングは文字列の小さな部分です。最初、中間、最後など、特定の部分だけが必要な場合に便利です。
Rubyで部分文字列を取得するにはどうすればよいですか?
1つの方法は、開始インデックスと、角かっこで囲まれたいくつかの文字をコンマで区切って使用することです。
このように :
string = "abc123" string[0,3] # "abc" string[3,3] # "123"
最初の数字は開始インデックスです。
2番目の数字は、必要な文字数です。
「最後の文字以外のすべての文字を取得する」などの操作を行う場合は、範囲を使用することもできます。
例 :
string = "abc123" string[0..-2] # "abc12"
これで、最初のインデックスは引き続き開始インデックスですが、2番目のインデックスは終了インデックス(両端を含む)です。この-2
は最後から2番目の文字で、 -1
文字列の終わりです。
サブストリングを削除または置換する場合 。
あなたはこれを行うことができます:
string[0..2] = "" p string # "123"
とてもいいです!
文字列に別の文字列が含まれているかどうかを確認する方法
文字列が別の文字列に含まれているかどうかを確認する最も簡単な方法は何ですか?
include? code> 方法:
string = "Today is Saturday" string.include?("Saturday") # true
index
を使用することもできます 方法:
string = "Today is Sunday" string.index("day") # 2
このメソッドは部分的な単語を検索し、trueまたはfalseを返す代わりに、この文字列の先頭が見つかったインデックスを提供します。
この例では、 index
「今日」で「日」を見つけています。
パターン(「日」という単語を含むすべての単語など)を見つけたい場合は、正規表現を探しています。
Ruby文字列をパディングする方法
文字列を埋める1つの方法は、 rjust
を使用することです。 2つの引数を持つメソッド:
binary_string = "1101" binary_string.rjust(8, "0") # "00001101"
右にパディングしたい場合は、 ljust
を使用できます :
binary_string = "1111" binary_string.ljust(8, "0") # "11110000"
大文字と小文字を区別しない文字列の比較
文字列の比較では大文字と小文字が区別されるため、比較する2つの文字列が大文字と小文字が同じであることを確認する必要があります。
これを行う一般的な方法は、方程式の両辺を downcase
にすることです。 またはupcase
。
例 :
lang1 = "ruby" lang2 = "Ruby" lang1.upcase == lang2.upcase
casecmp?
もあります 大文字と小文字を区別しない比較を行う方法ですが、ほとんど使用されません。
上記の例に固執してください。
文字列をトリミングして空白を削除する方法
ファイルやウェブサイトからデータを読み取るときに、文字列に余分な空白があることに気付く場合があります。
strip
を使用して余分なスペースを削除できます 方法:
extra_space = " test " extra_space.strip # "test"
片側(左/右)から空白だけを削除したい場合は、 lstrip
を使用できます。 & rstrip
代わりにメソッド。
文字列のプレフィックスとサフィックス
start_with?
を使用できます 文字列が特定のプレフィックスで始まるかどうかを確認するメソッド。
ここに例があります :
string = "ruby programming" string.start_with? "ruby" # true
end_with?
もあります 方法:
string = "ruby programming" string.end_with? "programming" # true
さらに、Ruby2.5ではdelete_prefix
が導入されました & delete_suffix
メソッド。これはあなたに役立つかもしれません。
ここに例があります :
string = "bacon is expensive" string.delete_suffix(" is expensive") # "bacon"
文字列を文字の配列に変換する
split
を使用すると、文字列を取得して文字の配列に分解するのが簡単です。 メソッド。
例 :
string = "a b c d" string.split # ["a", "b", "c", "d"]
デフォルトでは、 split
区切り文字としてスペースを使用しますが、このメソッドに引数を渡して別の区切り文字を指定できます。
カンマ区切り値(CSV)のリストを分割する方法は次のとおりです。
csv = "a,b,c,d" string.split(",") # ["a", "b", "c", "d"]
ただし、CSVデータを具体的に操作している場合は、標準ライブラリのCSVクラスの使用を検討することをお勧めします。このクラスは、列ヘッダーの読み取りなどを実行できるため、作業が簡単になります。
配列を文字列に変換する
文字列の配列を取得してこれらの文字列を大きな文字列に結合する場合は、 join
を使用できます。 メソッド。
例 :
arr = ['a', 'b', 'c'] arr.join # "abc"
join
に引数を渡すこともできます 、この引数は文字区切り文字です。
例 :
arr = ['a', 'b', 'c'] arr.join("-") # "a-b-c"
文字列を整数に変換する
"49"
のような文字列を変換する場合 整数に49
to_i
を使用できます メソッド。
例 :
"49".to_i
数字を含まない文字列でこれを試してみると、 0
が得られることに注意してください。 。
例 :
"a".to_i # 0
文字列が数字かどうかを確認する
文字列が整数のみで構成されているかどうかを知りたいですか?
これを行うことができます :
"123".match?(/\A-?\d+\Z/) # true "123bb".match?(/\A-?\d+\Z/) # false
注 :
match?
メソッドはRuby2.4で導入され、match
を使用できます (疑問符なし)古いバージョンでは。
このコードは正規表現を使用しています。翻訳させてください:
「文字列の先頭から( \ A
)オプションのダッシュ(-?
)があるかどうかを確認します 、負の数の場合)、そこにいくつかの数があることを確認します( \ d +
)&文字列の最後まで何もありません( \ Z
)。」
文字を追加する方法
既存の文字列に文字を追加することで、小さな文字列から大きな文字列を構築できます。これを文字列連結とも呼びます 。
<<
を使用してこれを行う方法は次のとおりです 方法:
string = "" string << "hello" string << " " string << "there" # "hello there"
+ =
は使用しないでください 文字列の連結の場合、毎回新しい文字列が作成されるため、パフォーマンスには良くありません!
Rubyで文字列の文字を反復処理する
文字列の個々の文字を操作すると便利な場合があります。
そのための1つの方法は、 each_char
を使用することです。 方法:
"rubyguides".each_char { |ch| puts ch }
chars
を使用することもできます 文字列を文字の配列に変換するメソッド。次に、 each
を使用できます この配列で反復します。
例 :
array_of_characters = "rubyguides".chars # ["r", "u", "b", "y", "g", "u", "i", "d", "e", "s"]
Rubyで文字列を大文字または小文字に変換する方法
文字列をすべて大文字に変換する場合は、 upcase
を使用できます。 メソッド。
例 :
"abcd".upcase # "ABCD"
また、小文字に変換する場合は、小文字
を使用できます。 メソッド。
例 :
"ABCD".downcase # "abcd"
複数行の文字列を作成する方法
複数行の文字列は、2つの異なる方法で作成できます。
1つはヒアドキュメントを使用することです:
b = <<-STRING aaa bbb ccc STRING
もう1つは、%Q
を使用する方法です。 :
a = %Q(aaa bbb ccc )
Gsubメソッドを使用して文字列内のテキストを置き換える方法
文字列内のテキストを置き換える場合は、gsubメソッドを使用します。
「犬」という言葉を「猫」に置き換えましょう:
string = "We have many dogs" string.gsub("dogs", "cats") # "We have many cats"
文字列を削除する場合は、空の文字列を使用してください 2番目の引数として。
例 :
string = "abccc" string.gsub("c", "") # "ab"
今 :
gsub
メソッドは新しい文字列を返します。
元の文字列に変更を適用する場合は、 gsub!
を使用できます。 メソッド。
gsubメソッド また、引数として正規表現を使用するため、正確な単語の代わりにパターンを置き換えることができます。
ここに例があります :
string = "We have 3 cats" string.gsub(/\d+/, "5") # "We have 5 cats"
これにより、すべての数値が置き換えられます( \ d +
)番号が 5
の文字列 。
ブロックを使用してこのメソッドを使用するもう1つの方法:
title = "the lord of the rings" title.gsub(/\w+/) { |word| word.capitalize } # "The Lord Of The Rings"
gsub
はどうですか vs sub
?
ええと、 sub
gsub
と同じです 、ただし、最初の一致のみが置き換えられます。
Gsubはすべての一致を置き換えます。
文字列から最後の文字を削除する方法
(Kernel#getsメソッドを使用して)ユーザーに入力を求める場合は、改行文字( \ n
)があります。 )文字列の最後で、これにより文字列を直接比較できなくなります。
例 :
puts "What's your name?" name = gets # type something...
その余分な改行文字を削除する最良の方法( \ n
)chompメソッドを使用する 。
例 :
name = gets.chomp
Ruby 2.3以降、chompメソッドは、削除する文字を削除できるオプションの引数を取ります。
例 :
"abcd?".chomp("?") # "abcd"
また、文字が存在しない場合は、元の文字列が返されます。
文字列エンコーディングを変更する方法
文字列は一連のバイトとして保存され、エンコーディングに基づいて表示できる文字に変換されます。
たとえば、ASCIIエンコーディングの65という数字は、文字「A」を表します。
ただし、UTF-8など、さまざまな言語(中国語など)の文字や絵文字を表現できる、より複雑なエンコーディングもあります。
文字列の現在のエンコーディングを確認するには、 encoding
を使用できます。 メソッド。
"abc".encoding # Encoding:UTF-8
ディスクからファイルを読み取ったり、Webサイトからデータをダウンロードしたりすると、エンコードの問題が発生する可能性があります。
多くの場合、 encoding
を適用することで、この問題を修正できます。 。
このように :
"abc".force_encoding("UTF-8")
文字を数える
count
を使用すると、文字列に文字が表示される回数をカウントできます。 メソッド。
例:
str = "aaab" str.count("a") # 3 str.count("b") # 1
概要
多くの文字列メソッドについて学びました 、結合と分割で文字列を配列に分割したり、gsubで文字列内のテキストを置き換えたり、ストリップして余分な空白を削除したりします。
後でこのページを参照したい場合があるので、必ずブックマークして、Rubyのすべての友達と共有してください🙂
読んでくれてありがとう!
-
Rubyでの関数型プログラミング(完全ガイド)
関数型プログラミングについて聞いたばかりで、いくつか質問があるかもしれません。 いいね… 関数型プログラミングとは正確には何ですか? オブジェクト指向プログラミングと比較してどうですか? Rubyで関数型プログラミングを使用する必要がありますか? これらの質問に答えて、これがどのように機能するかをよりよく理解できるようにします。 関数型プログラミングとは これは単なる流行や派手な言葉ではなく、長い間存在していた実際のプログラミングパラダイムですが、最近人気を取り戻しています。 そして、このパラダイムの背後にある基本的な考え方は、あなたが思っているよりも理解しやすいです。 関数型
-
Ruby文字列のフォーマット
Rubyで文字列をフォーマットする方法について話しましょう。 なぜ文字列をフォーマットしたいのですか?数値が10未満であっても、先行ゼロを使用したり(例:01、02、03…)、コンソール出力を列に適切にフォーマットしたりすることができます。 他の言語では、 printfを使用できます 文字列をフォーマットする関数です。Cを使用したことがある場合は、おそらくそのことに精通しているでしょう。 printfを使用するには フォーマット指定子のリストと変数または値のリストを定義する必要があります。 Ruby文字列フォーマット入門 sprintf はRubyでも利用できます。この投稿では、よ