2014 年 1 月 25 日

Ruby 初級者向けレッスン 47 回
— 文字列 —
ひがき @ Ruby 関西
文字列
•
•
•
•
•
•

リテラル
エンコーディング
順序
比較
数え上げ
破壊
文字列の作り方
String.new
String.new("ruby")

# => ""
# => "ruby"

1.to_s
[1, 2, 3].to_s

# => "1"
# => "[1, 2, 3]"
文字列リテラル
"Ruby 関西"

# => "Ruby 関西"

’ 文字列に " を含む’
# => "文字列に " を含む"
%|’ も " も含む|
# => "’ も " も含む"
式展開
"#{name}さん (#{age})"
# => "松本行弘さん (48)"
’#{name}さん (#{age})’
# => "#{name}さん (#{age})"
エンコーディング
s = "Ruby 関西"
s.encoding

# => #<Encoding:UTF-8>

e = s.encode(Encoding::EUC_JP)
e.encoding
# => #<Encoding:EUC-J...
マジックコメント
• 指定がなければ UTF 8
• Emacs

# -*- coding: cp932; -*
• Vim

# vi: set fileencoding=cp932 :
順序
[Ruby, Java, C#, Lisp].sort
# = [C#, Java, Lisp, Ruby]
a.succ
b.succ.succ
z.succ
9.succ
Ruby.succ

#
#
#
#
#

=
=
=
=
=...
比較
Ruby == Ruby
Ruby != Ruby
Ruby === Ruby
Ruby.eql? Ruby
Ruby.equal? Ruby
Ruby =~ /Ruby/
Ruby !~ /Ruby/

#
#
#
#
#
#
#

=...
比較 (2)
s = Ruby 関西.encode(Encoding::CP932)
u = Ruby 関西.encode(Encoding::UTF_8)
s == u

# = false
数え上げ
Ruby[0]
Ruby[1]
Ruby[2]
Ruby[-1]

#
#
#
#

=
=
=
=

R
u
b
y

Ruby 関西[1, 2]
Ruby 関西[2..3]
Ruby 関西[3..-2]

# = ub
# = b...
数え上げ (2)
Ruby 関西.chars.each{|c| puts c}
#
#
#
#
#
#








R
u
b
y
関
西
数え上げ (3)
Ruby 関西.bytes
# = [82, 117, 98, 121, 233, 150,
162, 232, 165, 191]
Ruby 関西.codepoints
# = [82, 117, 98, 121, 3830...
数え上げ (4)
NonRubynNonLifen.lines.each do |l|
p l
end
#
#
#
#






Non
Rubyn
Non
Lifen
破壊
s = ruby
s.upcase
s

# = RUBY
# = ruby

s.upcase!
s

# = RUBY
# = RUBY
破壊 (2)
s = ruby
s.upcase

s

E

ruby

E RUBY
破壊 (3)
s = ruby
s.upcase!

s

E RUBY
破壊 (4)
s = ruby
t = s
t.upcase!
s

# = ruby
# = RUBY
# = RUBY
破壊 (5)
s = ruby
t = s
t.upcase!

E
 

 
t  

s

ruby
破壊 (6)
s = ruby
t = s
t.upcase!

E RUBY
 

 
t  

s
演習問題 0
今日のレッスンで分からなかったこと、疑問に
思ったことをグループで話し合ってみよう。
演習問題 1
文字列の

1.
2.
3.
4.

行数
単語数
文字数
バイト数

を数えてみよう。
演習問題 2
文字列の

1. 単語の出現回数
2. 文字の出現回数
を数えてみよう。
演習問題 3
こにんちは みさなん おんげき ですか ? わしたは げんき で
す 。この ぶしんょう は イリギス の ケブンッリジ だがいく
の けきんゅう の けっか にげんん は もじ を にしんき する
とき その さしいょ と さい...
自己紹介
•
•
•
•
•

名前 (ニックネーム)
普段の仕事・研究内容・代表作
Ruby 歴・コンピュータ歴
勉強会に来た目的
などなど
参考
• ケンブリッジ例文
https://gist.github.com/higaki/8147246
• 解答例

https://github.com/higaki/
learn ruby kansai 59
• るりま
http://d...
Upcoming SlideShare
Loading in …5
×

Ruby初級者向けレッスン 47回 ─── 文字列

1,016 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,016
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ruby初級者向けレッスン 47回 ─── 文字列

  1. 1. 2014 年 1 月 25 日 Ruby 初級者向けレッスン 47 回 — 文字列 — ひがき @ Ruby 関西
  2. 2. 文字列 • • • • • • リテラル エンコーディング 順序 比較 数え上げ 破壊
  3. 3. 文字列の作り方 String.new String.new("ruby") # => "" # => "ruby" 1.to_s [1, 2, 3].to_s # => "1" # => "[1, 2, 3]"
  4. 4. 文字列リテラル "Ruby 関西" # => "Ruby 関西" ’ 文字列に " を含む’ # => "文字列に " を含む" %|’ も " も含む| # => "’ も " も含む"
  5. 5. 式展開 "#{name}さん (#{age})" # => "松本行弘さん (48)" ’#{name}さん (#{age})’ # => "#{name}さん (#{age})"
  6. 6. エンコーディング s = "Ruby 関西" s.encoding # => #<Encoding:UTF-8> e = s.encode(Encoding::EUC_JP) e.encoding # => #<Encoding:EUC-JP> Encoding.list
  7. 7. マジックコメント • 指定がなければ UTF 8 • Emacs # -*- coding: cp932; -* • Vim # vi: set fileencoding=cp932 :
  8. 8. 順序 [Ruby, Java, C#, Lisp].sort # = [C#, Java, Lisp, Ruby] a.succ b.succ.succ z.succ 9.succ Ruby.succ # # # # # = = = = = b d aa 10 Rubz
  9. 9. 比較 Ruby == Ruby Ruby != Ruby Ruby === Ruby Ruby.eql? Ruby Ruby.equal? Ruby Ruby =~ /Ruby/ Ruby !~ /Ruby/ # # # # # # # = = = = = = = true false true true false 0 false
  10. 10. 比較 (2) s = Ruby 関西.encode(Encoding::CP932) u = Ruby 関西.encode(Encoding::UTF_8) s == u # = false
  11. 11. 数え上げ Ruby[0] Ruby[1] Ruby[2] Ruby[-1] # # # # = = = = R u b y Ruby 関西[1, 2] Ruby 関西[2..3] Ruby 関西[3..-2] # = ub # = by # = y 関
  12. 12. 数え上げ (2) Ruby 関西.chars.each{|c| puts c} # # # # # # R u b y 関 西
  13. 13. 数え上げ (3) Ruby 関西.bytes # = [82, 117, 98, 121, 233, 150, 162, 232, 165, 191] Ruby 関西.codepoints # = [82, 117, 98, 121, 38306, 35199]
  14. 14. 数え上げ (4) NonRubynNonLifen.lines.each do |l| p l end # # # # Non Rubyn Non Lifen
  15. 15. 破壊 s = ruby s.upcase s # = RUBY # = ruby s.upcase! s # = RUBY # = RUBY
  16. 16. 破壊 (2) s = ruby s.upcase s E ruby E RUBY
  17. 17. 破壊 (3) s = ruby s.upcase! s E RUBY
  18. 18. 破壊 (4) s = ruby t = s t.upcase! s # = ruby # = RUBY # = RUBY
  19. 19. 破壊 (5) s = ruby t = s t.upcase! E     t   s ruby
  20. 20. 破壊 (6) s = ruby t = s t.upcase! E RUBY     t   s
  21. 21. 演習問題 0 今日のレッスンで分からなかったこと、疑問に 思ったことをグループで話し合ってみよう。
  22. 22. 演習問題 1 文字列の 1. 2. 3. 4. 行数 単語数 文字数 バイト数 を数えてみよう。
  23. 23. 演習問題 2 文字列の 1. 単語の出現回数 2. 文字の出現回数 を数えてみよう。
  24. 24. 演習問題 3 こにんちは みさなん おんげき ですか ? わしたは げんき で す 。この ぶしんょう は イリギス の ケブンッリジ だがいく の けきんゅう の けっか にげんん は もじ を にしんき する とき その さしいょ と さいご の もさじえ あてっれいば じ んゅばん は めゃちちくゃ でも ちんゃと よめる と いう け きんゅう に もづといて わざと もじの じんゅばん を いかれ えて あまりす 。 どでうす ? ちんゃと よちめゃう でしょ ? ちんゃと よためら はのんう よしろく
  25. 25. 自己紹介 • • • • • 名前 (ニックネーム) 普段の仕事・研究内容・代表作 Ruby 歴・コンピュータ歴 勉強会に来た目的 などなど
  26. 26. 参考 • ケンブリッジ例文 https://gist.github.com/higaki/8147246 • 解答例 https://github.com/higaki/ learn ruby kansai 59 • るりま http://doc.ruby-lang.org/ja/

×