##背景
- Coderbyteのプログラミング問題をやっていて、他の人の解法で遭遇したメソッドたち。
- 使う機会があればかなり嬉しい、乙なメソッドを集めたつもりです。
- 順次追加します。
--
#String
###count(letter) -> int
- 文字列に対して呼ぶと、letterで指定した文字が何個存在するか教えてくれる
- letterに二文字以上の文字列を入れると、一文字ずつ検索して、全部合算した個数を教えてくれる
"word of string".count "o" #=> 2
"word of string".count "wo" #=> 3
###next -> new_str
- 文字列が持つ英数字の中で一番右端の一文字を、 "アルファベット/10進数の数字の並び順で次にあたる文字"に変更する
- succでも呼べる
"9".next #=> "10"
"hello".next #=> "hellp"
#Array
###permutation(n) -> enum
- 与えられた配列から、 順番を並び替えた新しい配列を作れるだけつくり、それらを二次元配列として格納して返す。
- 引数で数字を渡すと、 その数字を配列の長さとしたときに作成可能な配列を返す。
- (数学に慣れている人への説明: 「順列」)
[1,2,3].permutation.to_a #=> [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
[1,2,3].permutation(2).to_a #=> [[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]
###combination(n) -> enum
- 与えられた配列から、 順番を無視して、n個の長さとして作成可能な新しい配列をつくり、二次元配列で返す。
- (数学に慣れている人に取っての: 「組み合わせ」)
[1,2,3].combination(3).to_a #=> [[1,2,3]]
[1,2,3].combination(2).to_a #=> [[1,2],[1,3],[2,3]]