[#44310] プログラムに対して意図したとおりの文字列を渡す方法 — "Information Kanasansoft" <kanasansoft@...>

kanasanです。

9 messages 2007/12/05

[#44332] クラス:相互参照系の作成方法について質問です — "Saburoh Sakai" <sabroh@...>

はじめまして、さかいと申します。

12 messages 2007/12/11

[#44366] Rake改善プロジェクト — "Hajime Hoshi" <hajimehoshi@...>

東京大学修士 1 年の星一と申します。

14 messages 2007/12/19

[ruby-list:44297] Re: p "135790123456789".delete("357") #=> "190124689"

From: Nobuyoshi Nakada <nobu@...>
Date: 2007-12-03 01:12:00 UTC
List: ruby-list #44297
なかだです。

At Mon, 3 Dec 2007 02:10:33 +0900,
take_tk wrote in [ruby-list:44295]:
> 以下は独り言なのですが、よろしかったら、String#delete の仕様が現在のよう
> になっている理由を教えてくださいませ。
> 
> http://www.ruby-lang.org/ja/man/?cmd=view;name=String;em=String#delete
> >str の形式は tr(1) と同じです。

trに合わせたということでしょう。

> p "135790123456789".delete("357")        #=> "190124689"
> 
> # "357" の並びの部分の削除を期待したのだが、
> # "3","5","7"のすべてを削除している。

そういう用途にはString#subがありますから。

> # deleteでは合理的な理由が見つからない。
> # trの第二引数のデフォルトを "" にすればよいじゃないか。
> 
> p "135790123456789".delete("357")        #=> "190124689"
> p "135790123456789".tr("357","")         #=> "190124689"
> #p "135790123456789".tr("357")           #=> wrong number of arguments (1 for 2) (ArgumentError)

deleteでは削除する文字を複数指定できます。

p "135790123456789".delete("0-9", "^29")   #=> "929"

subの第二引数のデフォルトを "" にする、というのはありかもしれま
せん。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread