0

你如何在Ruby中找到N个字符串是否相同。

说我有:

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

三者是否相同,如何判断?

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

怎么样:

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

我认为这比其他方法更有效,因为它只比较字符串 N-1 次并且不修改数组也不生成中间数组。

于 2013-11-14T00:13:21.950 回答
0

752 种方式中的两种:

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 回答
0

基础的Set方式。

require 'set'
[string1, string2, string3].to_set.size == 1
于 2013-11-14T00:21:53.893 回答
0
a = [string1, string2, string3]
a.all?{|inst| inst == a.first }
于 2013-11-14T03:08:24.090 回答