Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

プログラミングの基本といえば、変数の型や数値、文字列、日付の扱いでしょう。現に、プログラミング言語の参考書は、大概これらが最初に出てきます。

本記事では、それらの中でも特に重要な文字列について解説します。

とても基本的なことなので、掲載されているソースコードを自分で何度も実行して、確実に理解してください。

Rubyでの文字列の宣言

文字列型変数の宣言

では、プログラミング習得の王道に従い、さっそく文字列型の変数を宣言してみましょう。

・・・といいたいところですが、Rubyでは基本的に変数の型を宣言する必要はありません。最初に登場したときに代入する値の型に従います。つまり、こんな感じです。

「変数 = 何らかの文字列」で文字列型の変数になります。

str1 = "abcdefg"
str2 = "文字列"

初回登場時に文字列を代入するだけで、それが宣言+初期化となるわけです。

文字列とは、Stringクラスのオブジェクト

先ほどは文字列型の変数を宣言、と書きました。しかしこの表現は正確ではありません。

Rubyでは、すべてがオブジェクトです。

文字列も、文字列型の変数というより「Stringクラスのオブジェクト」という表現が正しいのです。さらにいうと、文字列型の変数というより文字列の作り方、といったほうが正しいです。

他言語でおなじみのnewを使って、以下のようなこともできます。

str = String.new
str = "a"
puts str

[実行結果]

a

最初にStringクラスのオブジェクトを生成し、そこにaという文字列を入れました。このように書くと、Stringクラスのオブジェクトであることがよく分かります。

本解説では、初心者のうちは文字列型と理解して問題ないので、あえて文字列型としました。これから学習を始める方は、ぜひその理解ができるまでがんばってくださいね!

文字列を表示する各種方法

文字列を表示する方法を順に解説していきます。

” と “” のちがい

改行を特殊文字(制御文字ともいいます)で表すと\nです。文字列中にこの\nが入っていると、改行して表示されます。この\nを使って、”(シングルクウォーテーション2つ)と””(ダブルクウォーテーション2つ)のちがいを見てみましょう。

str1 = 'abide\nfghi'
str2 = "abide\nfghi"

puts str1
puts str2

[実行結果]

abide\nfghi
abide
fghi

”で囲った方は、改行していません。一方、””で囲った方は、改行しました。つまり、”は特殊文字の制御を無効化してしまいます。“”では、その中の特殊文字の制御は有効です。

Linuxコマンドの実行結果を表示

UnixやLinux、Mac OSをお使いの方はぜひお試しください。

バッククォート「`」(シングルクウォーテーション「’」とは逆向きなので注意)で囲うと、コマンド実行した結果を出力できます。

Unix系OSで、カレントディレクトリのファイルリストを出力するコマンドは「ls -al」です。カレントディレクトリに4803.rbというファイルが1つだけある状態で、以下のコマンドを保存し、実行します。

puts `ls -al`

[実行結果]

$ ruby 4803.rb
total 8
drwxr-xr-x   3  staff  102  9 29 04:17 .
drwxr-xr-x  11  staff  374  9 29 04:16 ..
-rw-r--r--   1  staff  358  9 30 11:45 4803.rb

コマンドラインで「ls -al」を実行したときと同じ内容が表示されました。

式展開

例えば生徒名をstu_nameとして「こんにちは、◯◯さん」と表示させたいとします。文字列の連結を駆使してがんばるのもひとつですが、もっと簡単にできる方法を解説します。

式展開という方法です。

stu_name = "生徒"
puts "こんにちは、#{stu_name}さん"

[実行結果]

こんにちは、生徒さん

埋め込むイメージで文字列を生成できて、非常に便利です。

文字列表示メソッド puts,p,printf

文字列を表示させるためのメソッドをいくつか解説します。

puts(プットエス)メソッド

putsは、変数内の内容を表示します。

str = "abcdefg"
num = 12345
puts str
puts num

[実行結果]

abcdefg
12345

いまひとつピンとこないですが、これが配列ならこうなります。

array = ["a","b","c","d",1,2,3]
puts array

[実行結果]

a
b
c
d
1
2
3

要素を出力するたびに改行しました。

結果を見て、文字列と数値のちがいが分からないことにお気づきでしょうか?また、単純に文字列を出力しつつ改行したのか、配列を出力したのかが分かりません。

次に解説するpコマンドと比較すれば、putsの特徴はよくわかります。

pメソッド

同じことをpコマンドで実行しましょう。

str = "abcdefg"
num = 12345
p str
p num

[実行結果]

"abcdefg"
12345

文字列なら””で囲われて、数値ならそのままで表示されています。つまり、pコマンドは型のちがいまで表示します。

では配列ならどうでしょうか?

array = ["a","b","c","d",1,2,3]
p array

[実行結果]

["a", "b", "c", "d", 1, 2, 3]

配列でもやはり型まで表示されました。また、配列っぽく表示されたのが分かります。

printfメソッド

実行結果を指定した書式で表示したいときは、printfを使います。例えば文字列の長さにかかわらず固定の長さ(固定長)で表示したいなら、printfは便利です。

str = "defg"
printf("abc%10s\n",str)

[実行結果]

abc      defg

defgという文字列を%10sの指定をすれば、固定長10桁で表示されます。桁数が足りないので、右側に余白が出力されました。ちなみに%10sを%-10sにして「printf(“abc%-10s\n”,str)」とすると左側に余白が入ります。

まとめ

本記事では、文字列の基本と表示を解説しました。

今後、文字列の比較や置換、文字列の標準ライブラリなどなど、より複雑なことを解説していきます。今回は解説が多めですが、次回からもっと手を動かす内容になります。

それまでに、本記事の内容をじっくり読んで理解しておいてくださいね!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。