Ruby のお勉強 - 文字列 -
公開日:2014-12-18 更新日:2019-05-13
[Ruby]
はじめる
Ruby と言えば、日本人が開発したとか、Ruby on Rails と言うフレームワークが有名、とかぐらいしか知らないので、Ruby を勉強してみることにしました。
文字列
print "こんにちは\n"
print 'こんにちは\n'
こんにちは
こんにちは\n
文字列はダブルコーテーション、シングルコーテーションで囲う。シングルはの場合は、\ がエスケープされない。print %Q(こん"に'ちは\n)
print %Q<こん"に'ちは\n>
print %Q{こん"に'ちは\n}
print %Q[こん"に'ちは\n]
print %q(こん"に'ちは\n)
こん"に'ちは
こん"に'ちは
こん"に'ちは
こん"に'ちは
こん"に'ちは\n
%Qを先頭につけて、後ろを適当な括弧が囲うと、ダブルコーテーション、シングルコーテーションがそのまま出力される。
%qにすると、\ がエスケープされない。
print "a" + "b" + "\n"
print "a" "b" "\n"
ab
ab
文字列の結合は + を使ってもできるし、省略もできる、場合もある。print "1" + 1
コンパイルエラー
文字列と数値を結合する場合はコンパイルエラーになる。print "abc" + 123.to_s
abc123
数値を文字列に変換する場合には、to_s() を使う。引数がない場合、() は省略できるみたい。
print "99".to_i + 1
100
文字列を数値に変換する場合には、to_i() を使う。print "1.1".to_i.to_s + "\n"
print "1.5".to_i.to_s + "\n"
print "1.9".to_i.to_s + "\n"
print "1.1".to_f.to_s + "\n"
print "1.5".to_f.to_s + "\n"
print "1.9".to_f.to_s + "\n"
1
1
1
1.1
1.5
1.9
実数の文字列を数値に変換する場合には、to_f() を使う。to_i() だと、小数点以下が切り捨てられる。
サンプルでは、改行コードをつけるため、.to_s() をつけています。
print "ABC" * 3
ABCABCABC
* を使って、文字列を繰り返すことができる。print "ABC" / 3
print "ABC" - "A"
コンパイルエラー
- は動きそうな気がしたけど、動かなかった。print "ABC" || "XYZ"; puts "\n"
print "ABCDEFG" && "BCD"; puts "\n"
ABC
BCD
論理演算子も使える。|| は、コンパイルエラーは発生しなかったが、予想と違う結果となった。用途不明。
&& は重複する部分が残る。
s = "あいうえおかきくけこ"
print s[0] + "\n"
print s[1..3] + "\n"
print s[4..-1] + "\n"
あ
いうえ
おかきくけこ
文字列中の一部分を取得する。全角と半角はどちらも1文字として扱われる。文字列の残りを取りたい場合、[4..] としたらエラーになった。きちんと指定する必要がある。
99 とか大きい値にするか、-1 にすればOK。
print "abc".length .to_s + "\n"
print "abc".size .to_s + "\n"
print "abcdefg".count("a-z")
3
3
71
文字列長は length と size で取れる。count は、指定したパターンに該当する文字の数を数えてくれる。
s = " abc "
print "|" + s.strip + "|\n"
print "|" + s.lstrip + "|\n"
print "|" + s.rstrip + "|\n"
|abc|
|abc |
| abc|
空白を削除するには、trim ではなく、strip を使う。strip は、皮をはいだり、取り除くと言う意味がある。
服を脱ぐという意味もあるので、あの strip と同じです。
print "abcdefg abcdefg".capitalize + "\n"
print "ABCDEFG ABCDEFG".capitalize + "\n"
Abcdefg abcdefg
Abcdefg abcdefg
最初の文字を大文字にして、後ろを小文字にしてくれます。スペースを入れても、後ろの単語の先頭は大文字にはならない。
print "abcdefg".upcase + "\n"
print "ABCDEFG".downcase + "\n"
ABCDEFG
abcdefg
大文字を小文字にしたり、小文字を大文字にしたり。