|
[ruby-list:42979] Re: 長い書名を短くするメソッド: msg#00040lang.ruby.japanese
なかだです。 At Tue, 7 Nov 2006 00:26:28 +0900, keiichi matsunaga wrote in [ruby-list:42975]: > 4) 縮める場合,前から全角5文字(=10バイト),後ろから全角2文字(=4バイ > ト)を取り出して,間を「…」でつなぐ > > 問題は4)の段階で,何も考えずに str[0,10] などとやると,漢字の真ん中で > 切れる,いわゆる泣き別れが起きる可能性があるということです。バイト数と > 文字数の両方を意識しながら文字を取り出すにはどういう方法があるのでしょ > うか? 途中で余分な一時オブジェクトができてしまうのがいまいちですが。 class String def shorten(start = 10, last = 4) if length > start + last self[0, start][/.*/m] + "…" + self.match(/.*/, -last)[0] else self end end end p "長い書名を短くするメソッド".shorten -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | [ruby-list:42978] Re: 長い書名を短くするメソッド, Minero Aoki |
|---|---|
| Next by Date: | [ruby-list:42980] Re: 長い書名を短くするメソッド, Nobuyoshi Nakada |
| Previous by Thread: | [ruby-list:42978] Re: 長い書名を短くするメソッド, Minero Aoki |
| Next by Thread: | [ruby-list:42980] Re: 長い書名を短くするメソッド, Nobuyoshi Nakada |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |