比较数组中的单个单词

时间:2014-02-25 18:37:21

标签: ruby arrays string split

我正在寻找一种方法来获取两个句子的用户输入,然后让用户选择一个能够让程序检查的数字,以查看对应于该数字的单词在两个句子中是否相同。

因此,如果每个句子中有8个单词并且他们选择了数字4,程序将比较两个句子上的第四个单词,然后告诉用户两个“字符串”匹配。

使用数组或仅使用字符串会更好吗?

我会在这个例子中使用split吗?

2 个答案:

答案 0 :(得分:0)

是的,我认为拆分是一个不错的选择。

假设单词边界是空格,你可以这样做:

string1 = "my name is Jerry"
string2 = "his name was Pete"

number = 2
string1.split(/\s/)[number - 1] == string2.split(/\s/)[number - 1]
#=> true

number = 3
string1.split(/\s/)[number - 1] == string2.split(/\s/)[number - 1]
#=> false

答案 1 :(得分:0)

使用数组是最好的,因为它们更容易处理。它更像是个人偏好。 我会做这样的事情

 sentence_1 = "The brown fox jumped over the white fence" || (User Input)
 sentence_2 = "The White fox ran over the white rails" || (User Input)

 array_1 = sentence_1.split(" ")
 array_2 = sentence_2.split(" ")

 number = gets.to_i

  # This is assuming user enters numbers starting from 1 and not 0

 number = number - 1  #index

 word_1 = array_1[number] rescue ''
 word_2 = array_2[number] rescue ''

 unless word_1 == '' || word_2 == ''
     word_1 == word_2 ? (puts "Match: #{word_1} = #{word_2}") : (puts "MisMatch :#{word_1} Not equal #{word_2}")
 else
     puts "The sentence is not that long"
 end