文字列を扱おう
プログラムではさまざまな種類のデータを扱います。このレッスンでは、データ型の概念と、文字列の作り方や基本的な操作を学びます。
データ型とは
プログラムでは、さまざまな種類のデータを扱います。例えば、数値や文字などです。これらのデータの種類のことをデータ型と呼びます。
Ruby には、例えば以下のような基本的なデータ型があります。
- 文字列(String): 文字の並び。例:
"こんにちは"、"Ruby" - 整数(Integer): 小数点を含まない数値。例:
42、-10 - 浮動小数点数(Float): 小数点を含む数値。例:
3.14、-0.5 - 真偽値(TrueClass / FalseClass):
true(真)またはfalse(偽)
puts "Hello" # => Hello(文字列) puts 42 # => 42(整数) puts 3.14 # => 3.14(浮動小数点数)
データ型によって、そのデータに対してできる操作が変わります。例えば、数値同士は計算ができますし、文字列同士は連結(つなげること)ができます。
このレッスンでは、文字列について詳しく学びます。
文字列とは
文字列(String)とは、文字の並びのことです。Ruby では、文字列を作るにはクォーテーション(引用符)で囲みます。
puts "こんにちは" # => こんにちは puts 'Ruby' # => Ruby
ダブルクォーテーション(")でもシングルクォーテーション(')でも、同じ文字列を作ることができます。
文字列の連結
+ を使うと、複数の文字列をつなげることができます。
first = "Hello" second = "World" puts first + second # => HelloWorld
3つ以上の文字列をつなげることもできます。
greeting = "こんにちは" name = "太郎" suffix = "さん" puts greeting + "、" + name + suffix # => こんにちは、太郎さん
文字列の長さ
.length メソッドを使うと、文字列の長さ(文字数)を調べることができます。
message = "Hello" puts message.length # => 5 japanese = "こんにちは" puts japanese.length # => 5
式展開
変数の値を文字列の中に埋め込みたいとき、式展開を使うと便利です。文字列の中で #{} を使い、埋め込みたい変数を囲みます。
name = "太郎" puts "こんにちは、#{name}さん" # => こんにちは、太郎さん
複数の変数を埋め込むこともできます。
name = "太郎" food = "りんご" puts "#{name}さんは#{food}が好きです" # => 太郎さんはりんごが好きです
式展開を使うには、文字列をダブルクォーテーションで囲む必要があります。シングルクォーテーションでは式展開は行われません。
name = "太郎" puts "#{name}さん" # => 太郎さん puts '#{name}さん' # => #{name}さん
シングルクォーテーションで囲むと、#{name} がそのまま文字として出力されます。
改行文字とエスケープシーケンス
文字列の中で改行を表現したいとき、改行文字 \n を使います。
puts "こんにちは\nさようなら" # => こんにちは # さようなら
このように、文字列の中で \n を使うと、その位置で改行されて出力されます。
\n のように、バックスラッシュ(\)で始まる特殊な文字の組み合わせをエスケープシーケンスと呼びます。エスケープシーケンスを使うと、通常の文字では表現できない特殊な文字を文字列に含めることができます。
よく使われるエスケープシーケンスには以下のようなものがあります。
\n: 改行\t: タブ(インデント)\\: バックスラッシュそのもの
puts "これはタブ→\t←です" # => これはタブ→ ←です
バックスラッシュそのものを出力したい場合は、\\ と書きます。
puts "フォルダ名: C:\\Users\\Documents" # => フォルダ名: C:\Users\Documents
まとめ
- データ型はデータの種類を表す(文字列、整数、浮動小数点数、真偽値など)
- 文字列はクォーテーション(
"または')で囲んで作成する +で文字列を連結できる.lengthメソッドで文字列の長さを調べられる- 式展開(
"...#{変数}...")を使うと、変数を文字列に埋め込める(ダブルクォーテーションのみ) \nで改行、\tでタブなど、エスケープシーケンスで特殊な文字を表現できる
演習に挑戦