RubyでN個の文字列が同じかどうかを調べる方法.
私が持っているとしましょう:
string1 = 'hi'
string2 = 'hi'
string3 = 'hi'
3つが同じかどうかはどうすればわかりますか?
RubyでN個の文字列が同じかどうかを調べる方法.
私が持っているとしましょう:
string1 = 'hi'
string2 = 'hi'
string3 = 'hi'
3つが同じかどうかはどうすればわかりますか?
単純な方法は、その単純さにおいて非常にエレガントです。
if string1 == string2 && string2 == string3
配列がある場合は、次のことができます。
strings.uniq.length == 1
strings.count(strings[0]) == strings.length
strings.each_cons(2).all? { |a, b| a == b }
すべての列挙型で機能するため、最後のものが特に気に入っています。
ベースのSet
方法。
require 'set'
[string1, string2, string3].to_set.size == 1
どうですか:
[string1, string2].count(string3) == 2
これは、文字列を N-1 回だけ比較し、配列を変更したり、中間配列を生成したりしないため、他よりも効率的だと思います。
a = [string1, string2, string3]
a.all?{|inst| inst == a.first }
752 通りの方法のうちの 2 つ:
a = ['hi', 'hi', 'hi']
a.uniq.size == 1 # => true
a.min == a.max # => true
a = ['hi', 'ho', 'hi']
a.uniq.size == 1 # => false
a.min == a.max # => false
(strings_array - [my_string]).empty?