文字列 - Ruby

文字列の作成

文字列を作成する一般的な方法は、シングルクォート、または、ダブルクォートで囲む方法です。

シングルクォートを使用すると特殊文字はエスケープされ、式展開も行われません。

puts("hello, world")
puts('hello, Ruby')
name = "Jon"

puts("hello\n#{name}")

puts('hello\n#{name}')

puts("hello, #{name}")

文字列を連結するには、以下のようにします。

name = "Jon"

puts("hello," + name)

文字列と数値を連結するとエラーになります。

puts(10 + "hello") # main.rb:1:in `+': String can't be coerced into Integer (TypeError)

数値と文字列を連結するには、数値を文字列に変換して連結します。

puts(10.to_s + "hello")

文字列は %記法で作ることもできます。

「 %q!~! 」はシングルクォート、「 %Q!~! 」はダブルクォートで囲んだことと同じです。

name = "Jon"

puts(%q!Hello, #{name}!)
puts(%Q!Hello, #{name}!)

文字列の比較

puts('ruby' == 'ruby') # true
puts('ruby' == 'Ruby') # false
puts('ruby' != 'ruby') # false
puts('ruby' != 'Ruby') # true

ヒアドキュメント(行指向文字列リテラル)

txt = <<TEXT
ruby
python
javascript
java
php
TEXT

puts(txt)

「 <<- 」を使うと最後の識別子をインデントしても先頭の空白部分が無視されます。

def txt_method
  <<-TEXT
  ruby
  python
  javascript
  TEXT
end

puts(txt_method)

「 <<~ 」を使うと内部の文字列をインデントしても先頭の空白は無視されます。

def txt_method
  <<~TEXT
        ruby
        python
        javascript
  TEXT
end

puts(txt_method)

ヒアドキュメント内では、式展開もできます。「 <<'TEXT' 」のように識別子をシングルクォートで囲むと式展開は無効になります。

name = "Ruby"

txt = <<TEXT
hello, #{name}
TEXT

puts(txt)
name = "Ruby"

txt = <<'TEXT'
hello, #{name}
TEXT

puts(txt)