SlideShare a Scribd company logo
2015年4月25日
Ruby初級者向けレッスン 52回
— 文字列 —
ひがき @ Ruby関西
PHPカンファレンス関西 2015
• 2015年5月30日(土) 10:00–17:00
• ブリーゼプラザ
• http://conference.kphpug.jp/2015/
文字列
• リテラル
• エンコーディング
• 順序
• 比較
• 数え上げ
• 破壊
文字列リテラル
"Ruby関西" # => "Ruby関西"
’文字列に " を含む’
# => "文字列に " を含む"
%|’ も " も含む|
# => "’ も " も含む"
式展開
"#{name}さん (#{age})"
# => "松本行弘さん (50)"
’#{name}さん (#{age})’
# => "#{name}さん (#{age})"
文字列操作
"Ruby" + "関西" # => "Ruby関西"
"こんにちは" * 2
# => "こんにちはこんにちは"
"hello world".sub(/ello/, ’ard’)
# => "hard world"
エンコーディング
s = "Ruby関西"
s.encoding # => #<Encoding:UTF-8>
e = s.encode(Encoding::EUC_JP)
e.encoding # => #<Encoding:EUC-JP>
Encoding.list
マジックコメント
• 指定がなければ UTF 8
• Emacs
 
# -*- coding: cp932; -*-
 
• Vim
 
# vi: set fileencoding=cp932 :
順序
[Ruby, Java, C#, Lisp].sort
# = [C#, Java, Lisp, Ruby]
a.succ # = b
b.succ.succ # = d
z.succ # = aa
9.succ # = 10
Ruby.succ # = Rubz
比較
Ruby == Ruby # = true
Ruby != Ruby # = false
Ruby === Ruby # = true
Ruby.eql? Ruby # = true
Ruby.equal? Ruby # = false
Ruby =~ /Ruby/ # = 0
Ruby !~ /Ruby/ # = false
比較 ===
case foo
when bar
...
end
bar === foo
比較 eql?
h = {foo = value}
h[bar]
# foo.hash == bar.hash ならば ...
foo.eql? bar
比較 equal?
s = Ruby
t = Ruby
s == t # = true
s.equal? t # = false
s.object_id # = 70273420555100
t.object_id # = 70273420555080
比較 エンコーディング
s = Ruby関西.encode(Encoding::CP932)
u = Ruby関西.encode(Encoding::UTF_8)
s == u # = false
数え上げ
Ruby[0] # = R
Ruby[1] # = u
Ruby[2] # = b
Ruby[-1] # = y
Ruby関西[1, 2] # = ub
Ruby関西[2..3] # = by
Ruby関西[3..-2] # = y関
数え上げ (2)
puts Ruby関西.chars
#  R
#  u
#  b
#  y
#  関
#  西
数え上げ (3)
Ruby関西.bytes
# = [ 82, 117, 98, 121, 233,
150, 162, 232, 165, 191]
R.ord # = 82
82.chr # = R
数え上げ (4)
pp NonRubynNonLifen.lines
#  [Non,
#  Rubyn,
#  Non,
#  Lifen]
破壊
s = ruby
s.upcase # = RUBY
s # = ruby
s.upcase! # = RUBY
s # = RUBY
破壊 (2)
s = ruby s rubyE
s.upcase RUBY
破壊 (3)
s = ruby s RUBYE
s.upcase!
破壊 (4)
s = ruby
t = s # = ruby
t.upcase! # = RUBY
s # = RUBY
破壊 (5)
s = ruby s rubyE
t = s t  
 
 
t.upcase!
破壊 (6)
s = ruby s RUBYE
t = s t  
 
 
t.upcase!
演習問題 0
今日のレッスンで分からなかったこと、疑問に
思ったことをグループで話し合ってみよう。
演習問題 1
文字列の
1. 行数
2. 単語数
3. 文字数
4. バイト数
を数えてみよう。
演習問題 2
文字列の
1. 単語の出現回数
2. 文字の出現回数
を数えてみよう。
演習問題 3
こにんちは みさなん おんげき ですか ? わしたは げんき で
す 。この ぶしんょう は イリギス の ケブンッリジ だがいく
の けきんゅう の けっか にげんん は もじ を にしんき する
とき その さしいょ と さいご の もさじえ あてっれいば じ
んゅばん は めゃちちくゃ でも ちんゃと よめる と いう け
きんゅう に もづといて わざと もじの じんゅばん を いかれ
えて あまりす 。 どでうす ? ちんゃと よちめゃう でしょ ?
ちんゃと よためら はのんう よしろく
自己紹介
• 名前 (ニックネーム)
• 普段の仕事・研究内容・代表作
• Ruby歴・コンピュータ歴
• 勉強会に来た目的
• などなど
参考
• ケンブリッジ例文
https://gist.github.com/higaki/8147246
• 解答例
https://github.com/higaki/
learn ruby kansai 66
• るりま
http://docs.ruby-lang.org/ja/

More Related Content

PDF
Ruby初級者向けレッスン 47回 ─── 文字列
PDF
入門 超絶技巧プログラミング !
PDF
Ruby on JavaScript
PDF
まつりとTシャツと私
PPT
Student Blogging
PDF
1. ai100 5 algemene brochure - najaar 2015 (2)
PDF
初級者向けレッスン 51回 ─── 例外
PDF
Ruby初級者向けレッスン 45回 ─── 例外
Ruby初級者向けレッスン 47回 ─── 文字列
入門 超絶技巧プログラミング !
Ruby on JavaScript
まつりとTシャツと私
Student Blogging
1. ai100 5 algemene brochure - najaar 2015 (2)
初級者向けレッスン 51回 ─── 例外
Ruby初級者向けレッスン 45回 ─── 例外

Viewers also liked (19)

PDF
Ruby初級者向けレッスン 54回 ─── クラス
PDF
Ruby 初級者向けレッスン 49回───クラス
PDF
Modelos pedagógicos
PPTX
Fes.te.sa. 1986 2007
PPT
Cuaderno viaje
PDF
Ruby初級者向けレッスン 55回 ─── 例外
PDF
Ruby初級者向けレッスン KOF2015 出張版
PPS
Nuestra Querida Benemerita
PDF
Rastros mamíferos - paraná
PDF
Ruby初級者向けレッスン 56回 ─── ブロック
PPTX
What tech means for strategists
PPTX
Vlogging for film- Bend it like Beckham
PPTX
What tech means for strategists
PDF
Mata atlântica - uma rede pela floresta
PDF
Ruby初級者向けレッスン 50回 ─── ブロック
PDF
ジュンク堂書店の方から来ました
PDF
Ruby初級者向けレッスン 第46回 ─── Test::Unit
PDF
PHPer のための Ruby 教室
PDF
Ruby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 54回 ─── クラス
Ruby 初級者向けレッスン 49回───クラス
Modelos pedagógicos
Fes.te.sa. 1986 2007
Cuaderno viaje
Ruby初級者向けレッスン 55回 ─── 例外
Ruby初級者向けレッスン KOF2015 出張版
Nuestra Querida Benemerita
Rastros mamíferos - paraná
Ruby初級者向けレッスン 56回 ─── ブロック
What tech means for strategists
Vlogging for film- Bend it like Beckham
What tech means for strategists
Mata atlântica - uma rede pela floresta
Ruby初級者向けレッスン 50回 ─── ブロック
ジュンク堂書店の方から来ました
Ruby初級者向けレッスン 第46回 ─── Test::Unit
PHPer のための Ruby 教室
Ruby初級者向けレッスン 48回 ─── Array と Hash
Ad

Similar to 初級者向けレッスン 52回 ─── 文字列 (20)

PDF
Ruby の文字列について
PDF
Ruby の String のメソッドについて
PPTX
Ruby講座一回目
PPTX
Ruby講座一回目
PPTX
Have fun-with-ruby
PDF
Ruby紹介3(pdf)
PDF
2011年10月28日
PDF
Rubysapporo Stringsearch
PPTX
Ruby講座第二回
PPTX
A Reintroduction To Ruby M17 N
PPTX
第3回輪講
PDF
KEY
Rails基礎講座 part.1
PDF
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
PDF
拡張ライブラリ作成による高速化
ODP
Rubyのソースコードを読んでみよう(入門編)
PDF
クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料
KEY
الدرس اللغة العربية وروبي (関西闇Ruby会議)
ODP
Lt会01_uetch
PDF
Ruby programmer silverの取得に向けて
Ruby の文字列について
Ruby の String のメソッドについて
Ruby講座一回目
Ruby講座一回目
Have fun-with-ruby
Ruby紹介3(pdf)
2011年10月28日
Rubysapporo Stringsearch
Ruby講座第二回
A Reintroduction To Ruby M17 N
第3回輪講
Rails基礎講座 part.1
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜
拡張ライブラリ作成による高速化
Rubyのソースコードを読んでみよう(入門編)
クックパッド春の超絶技巧パンまつり 超絶技巧プログラミング編 資料
الدرس اللغة العربية وروبي (関西闇Ruby会議)
Lt会01_uetch
Ruby programmer silverの取得に向けて
Ad

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