0

RubyでN個の文字列が同じかどうかを調べる方法.

私が持っているとしましょう:

string1 = 'hi'
string2 = 'hi'
string3 = 'hi'

3つが同じかどうかはどうすればわかりますか?

4

6 に答える 6

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 }

すべての列挙型で機能するため、最後のものが特に気に入っています。

于 2013-11-14T00:05:15.537 に答える
0

ベースのSet方法。

require 'set'
[string1, string2, string3].to_set.size == 1
于 2013-11-14T00:21:53.893 に答える
0

どうですか:

[string1, string2].count(string3) == 2

これは、文字列を N-1 回だけ比較し、配列を変更したり、中間配列を生成したりしないため、他よりも効率的だと思います。

于 2013-11-14T00:13:21.950 に答える
0
a = [string1, string2, string3]
a.all?{|inst| inst == a.first }
于 2013-11-14T03:08:24.090 に答える
0

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
于 2013-11-14T00:14:10.007 に答える
0
(strings_array - [my_string]).empty?
于 2013-11-14T00:18:06.530 に答える