SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
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/

Weitere ähnliche Inhalte

Andere mochten auch

Ruby初級者向けレッスン 54回 ─── クラス
Ruby初級者向けレッスン 54回 ─── クラスRuby初級者向けレッスン 54回 ─── クラス
Ruby初級者向けレッスン 54回 ─── クラスhigaki
 
Ruby 初級者向けレッスン 49回───クラス
Ruby 初級者向けレッスン 49回───クラスRuby 初級者向けレッスン 49回───クラス
Ruby 初級者向けレッスン 49回───クラスhigaki
 
Fes.te.sa. 1986 2007
Fes.te.sa. 1986   2007Fes.te.sa. 1986   2007
Fes.te.sa. 1986 2007Dora Océs
 
Ruby初級者向けレッスン 55回 ─── 例外
Ruby初級者向けレッスン 55回 ─── 例外Ruby初級者向けレッスン 55回 ─── 例外
Ruby初級者向けレッスン 55回 ─── 例外higaki
 
Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版Ruby初級者向けレッスン KOF2015 出張版
Ruby初級者向けレッスン KOF2015 出張版higaki
 
Ruby初級者向けレッスン 56回 ─── ブロック
Ruby初級者向けレッスン 56回 ─── ブロックRuby初級者向けレッスン 56回 ─── ブロック
Ruby初級者向けレッスン 56回 ─── ブロックhigaki
 
What tech means for strategists
What tech means for strategistsWhat tech means for strategists
What tech means for strategistsdomboyd
 
Vlogging for film- Bend it like Beckham
Vlogging for film- Bend it like Beckham Vlogging for film- Bend it like Beckham
Vlogging for film- Bend it like Beckham Annie Davis
 
What tech means for strategists
What tech means for strategistsWhat tech means for strategists
What tech means for strategistsdomboyd
 
Ruby初級者向けレッスン 50回 ─── ブロック
Ruby初級者向けレッスン 50回 ─── ブロックRuby初級者向けレッスン 50回 ─── ブロック
Ruby初級者向けレッスン 50回 ─── ブロックhigaki
 
ジュンク堂書店の方から来ました
ジュンク堂書店の方から来ましたジュンク堂書店の方から来ました
ジュンク堂書店の方から来ましたhigaki
 
Ruby初級者向けレッスン 第46回 ─── Test::Unit
Ruby初級者向けレッスン 第46回 ─── Test::UnitRuby初級者向けレッスン 第46回 ─── Test::Unit
Ruby初級者向けレッスン 第46回 ─── Test::Unithigaki
 
PHPer のための Ruby 教室
PHPer のための Ruby 教室PHPer のための Ruby 教室
PHPer のための Ruby 教室higaki
 
Ruby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 48回 ─── Array と HashRuby初級者向けレッスン 48回 ─── Array と Hash
Ruby初級者向けレッスン 48回 ─── Array と Hashhigaki
 

Andere mochten auch (19)

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

Kürzlich hochgeladen

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Kürzlich hochgeladen (9)

AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

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