Ruby 文字列
Ruby 文字列
文字列はTextを表現するために使う
シングルクォートとダブルクォート
- 特殊文字や式展開を使う時 : " "
- それ以外の時 : ' '
単純文字列
'abc', "abc" : 両方とも文字列を表す
特殊文字
\n : new lineを意味する
"Ruby\nProgramming" : " "(DoubleQuotes)では使える
'Ryby\nProgramming' : ' '(Single Quotes)ではできない
文字列 Interpolation
pust "My name is #{first_name} #{last_name}" : 特殊文字と同様に " "(DoubleQuotes)では使える
pust 'My name is #{first_name} #{last_name}' : 特殊文字と同様に ' '(Single Quotes)ではできない
- 文字列Interpolationは " " (DoubleQuotes)だけで動く
例えば、first_name="Arang"とlast_name="Choi"という2つの変数があると仮定しましょう。
"My name is #{first_name} #{last_name}"のように作成すると、#{first_name}と#{last_name}の部分がそれぞれArngとChoiに置き換えられ、"My name is Arang Choi"という結果が生成される。
irb#1(main):065> 'abc'
=> "abc"
irb#1(main):066> "abc"
=> "abc"
irb#1(main):070> puts "Ryby\nProgramming"
Ryby
Programming
=> nil
irb#1(main):071> puts 'Ryby\nProgramming'
Ryby\nProgramming
=> nil
irb#1(main):072> first_name = 'Arang'
=> "Arang"
irb#1(main):073> last_name = 'Choi'
=> "Choi"
irb#1(main):074> puts "MyName is #{first_name} #{last_name}"
MyName is Arang Choi
=> nil
irb#1(main):075> puts 'MyName is #{first_name} #{last_name}'
MyName is #{first_name} #{last_name}
=> nil
文字列操作
- 空白文字' 'を追加して'Hello' + ''Ruby!''で作成すると、2つの単語の間に空白が入ってHello Ruby!が出力されます。
文字列結合
- 空白文字 ' ' を追加して'Hello' + ''Ruby!''で作成すると、2つの単語の間に空白が入ってHello Ruby!が出力されます。
'Hello' + ' ' + 'World' # => "Hello World"
name = 'Alice'
"Hello #{name}" # => Hello Alice
greeting = 'Hello'
greeting << 'World!' # "Hello World"
文字列Method
.upcaseメソッドは文字列のすべての文字を大文字に変換します。 たとえば、putss.upcaseはHELLO RUBY!を出力されます。
.downcaseメソッドは文字列のすべての文字を小文字に変換します。 putss.downcaseはhello ruby!を出力されます。
s.upcase!のようなメソッドに感嘆符(!)が付いたら、その文字列自体を変更します。 この場合、sの値が元の"Hello Ruby!"から"HELLO RUBY!"に変更されます。
'ruby'.upcase # => "RUBY"
'RUBY'.downcase # => "budy"
'ruby'.capitalize # => "Ruby"
'Hello'.reverse # => "olleH"
" Hello \n".chomp # => " Hello "
" Hello ".strip # => "Hello"
'Hello'.gsub('l', 'r') # => "Herro"
'Hello'[0] # => "H"
'Hello'[1..3] # => "ell"
文字列Class
'abc'.classは、その文字列のクラスを返します。 Rubyでは、すべての文字列はStringクラスのインスタンスです。
'abc'.methodsは、Stringクラスで使用できるすべてのメソッドを配列に返します。 これにより、RubyのStringクラスが提供する様々な機能を確認することができます。
irb#1(main):084> puts 'Hello' + 'Ruby!'
HelloRuby!
=> nil
irb#1(main):085> puts 'Hello' + ' ' + 'Ruby!'
Hello Ruby!
=> nil
irb#1(main):086> s = 'Hello Ruby!'
=> "Hello Ruby!"
irb#1(main):089> puts s.upcase
HELLO RUBY!
=> nil
irb#1(main):090> puts s.downcase
hello ruby!
=> nil
irb#1(main):091> puts s
Hello Ruby!
=> nil
irb#1(main):092> s.upcase!
=> "HELLO RUBY!"
irb#1(main):093> s
=> "HELLO RUBY!"
irb#1(main):094> 'abc'.class
=> String
irb#1(main):095> 'abc'.methods
=>
[:each_grapheme_cluster,
:slice,
:slice!,
:rpartition,
:encoding,
:force_encoding,
:b,
:valid_encoding?,
:ascii_only?,
:hash,
:unicode_normalized?,
:encode!,
:unicode_normalize,
:unicode_normalize!,
空白文字
1. Space
ex) " "
2. Tab
- \t : Space4つの空間
3. Newline
- 改行を示し、通常Enterキーを押すときに生成されます。
4. Carriage Return
- 列の始まりとしてカーソルを移動させるために使用されます。
ex) "\r" (キャリッジリターン)
5. 空白文字処理Method
.strip : 文字列の前後の空白(スペース、タブ、改行文字)を取り除きます。
.lstrip : 文字列の前の 空白を除きます。
.rstrip : 文字列の後の空白を除きます。
" Hello World ".strip # => "Hello World"
"\tHello\tWorld\n".stript # => "Hello\tWord"
"Hello\n".chomp # => "Hello"