MacでRuby入門 ~文字列リテラルと改行~

今回は、Rubyで文字列の扱いについて勉強します。

「Hello」とか「World」のように、1文字以上の文字が連続しているデータが「文字列」です。
プログラムの中に直接記述した文字列のことを「文字列リテラル」といいます。
Rubyでは、文字列は文字の並びをダブルクォート「"」かシングルクォート「'」で両端を囲んで表します。

"こんにちは"
'Hello'

Rubyで文字列を表示する方法を勉強します。
文字列を表示するには、printメソッドかputsメソッドを使います。

では、まずprintメソッドで文字列を表示してみましょう。

print "こんにちは"
print 'Hello'
(実行結果)
こんにちはHello

と表示されました。

ただ、「こんにちは」と「Hello」がつながって表示されてしまいますね。
できれば改行して2行に分けて表示したいものです。

改行して表示するには、制御文字を使います。
改行の制御文字は「\n」という書き方をします。
それぞれの文字列に改行コードを追加して実行してみましょう。

print "こんにちは\n"
print 'Hello\n'
(実行結果)
こんにちは
Hello\n

改行されて表示されましたが、2行目の文字列の後には「\n」がそのまま表示されています。

制御文字は、ダブルクォートで囲った文字列の中では制御文字として扱われますが、シングルクォートで囲った文字列の中では制御文字として解釈せず、表記したままの文字として扱うことになるからです。
ただし、シングルクォートで囲まれた文字列は、バックスラッシュそのものを表す「\」と

print 'こんにちは\\'
(実行結果)
こんにちは\

シングルクォートを表す「\'」

print 'こんにちは\''
(実行結果)
こんにちは'

意外は、特別な解釈はされず、その文字のまま扱われます。

最後に、putsメソッドで文字列を表示してみます。

putsメソッドは、printメソッドと違い、文字列の後に改行してくれます。

puts "こんにちは"
puts 'Hello'
(実行結果)
こんにちは
Hello


まとめ
・プログラムの中に直接記述した文字列を「文字列リテラル」という。
・文字列はダブルクォート「"」かシングルクォート「'」で両端を囲む。
・ダブルクォートで囲まれた文字列リテラルは制御文字「\n」を使って、改行をすることができる
・シングルクォート囲まれた文字列リテラルは、制御文字は表記したまま文字として扱われる