Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
文字数はおいくら?(Ruby版)
Search
tsuda.a
April 05, 2014
Programming
0
17
文字数はおいくら?(Ruby版)
サロゲート文字とか合字とか異体字とかの文字数を取得してみました。
tsuda.a
April 05, 2014
Tweet
Share
More Decks by tsuda.a
See All by tsuda.a
マジカルインクリメントと指数表記
tsudaahr
0
190
バックアップしていますか?
tsudaahr
0
120
RDB以前のファイル設計の話でもしようか(ぇ
tsudaahr
0
120
NPUわからん
tsudaahr
0
180
計算量オーダーの話
tsudaahr
1
390
クラウド初学者が抱える不安について
tsudaahr
0
260
キューとは何か
tsudaahr
0
230
等幅は死んだ(ぇ
tsudaahr
0
99
いくら眺めてもエラーの理由がわからないコードについて
tsudaahr
0
180
Other Decks in Programming
See All in Programming
デミカツ切り抜きで面倒くさいことはPythonにやらせよう
aokswork3
0
220
Back to the Future: Let me tell you about the ACP protocol
terhechte
0
140
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
350
技術的負債の正体を知って向き合う / Facing Technical Debt
irof
0
150
理論と実務のギャップを超える
eycjur
0
120
The Flutter Journey of Building a Live Streaming App — With a Side of Performance Tuning
u503
1
110
overlayPreferenceValue で実現する ピュア SwiftUI な AdMob ネイティブ広告
uhucream
0
180
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
490
オープンソースソフトウェアへの解像度🔬
utam0k
12
2.5k
CSC305 Lecture 02
javiergs
PRO
1
270
XP, Testing and ninja testing ZOZ5
m_seki
3
600
Devoxx BE - Local Development in the AI Era
kdubois
0
120
Featured
See All Featured
Building Adaptive Systems
keathley
43
2.8k
Statistics for Hackers
jakevdp
799
220k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.9k
Designing Experiences People Love
moore
142
24k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
900
A Tale of Four Properties
chriscoyier
160
23k
Mobile First: as difficult as doing things right
swwweet
224
10k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
140
34k
Transcript
文字数はおいくら? (Ruby版) @tsuda_ahr 2014/4/5 LTDD広島 #2
1.サロゲート文字の場合 puts "𩹉".length ※サロゲート文字とは、文字コードが U+10000 以上の文字をいいます。(かなり嘘かも)
1.サロゲート文字の場合 こたえ 1
1.サロゲート文字の場合 サロゲート文字でも、 正しく文字数を答える模様。
2.合字の場合 puts "を ゙".length puts "が".length puts "が".length
2.合字の場合 こたえ 2 2 1
2.合字の場合 合字の構成要素数が文字数として戻る。
3.異体字の場合 puts "辻".length puts "辻󠄀".length
3.異体字の場合 こたえ 1 2
4.C#だとこんな感じ Ruby C# サロゲート 𩹉 (U+29E49) 1 2 合字 を
゙ (U+3092 U+3099) 2 2 が (U+304B U+3099) 2 2 が (U+304C) 1 1 異体字 辻 (U+8FBB) 1 1 辻󠄀 (U+8FBB U+E0100) 2 3 内部がUTF-16なので、 サロゲート領域(U+10000以上) の文字は 2 でカウントされる。
5.結論 Ruby 結構優秀! (割と素直) (というか内部が多分UTF-8)
蛇足) 気にしてほしいこと String.Length は処理系によって値が異なることがある。 内部はどういうデータで保持しているかを想像してほしい。 入力するユーザー(一般の人)は無慈悲だ。 #
システムの都合は察してくれない
おわり ありがとうございました