[#48190] [ruby-trunk - Feature #9816] 文字列内の数字を数値として比較するメソッド — zn@...
Issue #9816 has been updated by Kazuhiro NISHIYAMA.
3 messages
2014/05/08
[ruby-dev:48198] Re: [ruby-trunk - Feature #9816] 文字列内の数字を数値として比較するメソッド
From:
KOSAKI Motohiro <kosaki.motohiro@...>
Date:
2014-05-09 02:39:47 UTC
List:
ruby-dev #48198
2014-05-08 7:54 GMT-04:00 Tadayoshi Funaba <tadf@dotrb.org>:
> 名前はともかく俺が欲しいのは filevercmp のほうかもしれない。
>
> x #=> ["2.1.10", "2.1.2", "8 layers", "8 layers 2", "8 layers 2.nki", "8 layers.nki", "a16", "a17"]
> puts x.sort{|a,b| a.numericcmp(b)}
> 2.1.2
> 2.1.10
> 8 layers
> 8 layers 2
> 8 layers 2.nki
> 8 layers.nki
> a16
> a17
> #=> nil
>
> $ ls -1v
> 2.1.2
> 2.1.10
> 8 layers
> 8 layers.nki
> 8 layers 2
> 8 layers 2.nki
> a16
> a17
ためしたところ、Windows Explorerはまたちょっと違う順序を示すようです(Windows8で確認)
05/08/2014 10:34 PM 0 2.1.10.txt
05/08/2014 10:34 PM 0 2.1.2.txt
05/08/2014 10:35 PM 0 8 layers 2.nki.txt
05/08/2014 10:35 PM 0 8 layers 2.txt
05/08/2014 10:35 PM 0 8 layers.nki.txt
05/08/2014 10:35 PM 0 8 layers.txt
05/08/2014 10:35 PM 0 a16.txt
05/08/2014 10:36 PM 0 a17.txt
でも "8 layers 2" が "8 layers" より前に来て嬉しいケースが思いつかないので無視していいと
思ってます。(ドキュメントに多少追記しておくと親切かもだけど)
usaさん、コメントありますか?