Ruby 比较数组中的单个单词
我正在寻找一种方法,将用户输入的两个句子,然后让用户选择一个数字,让程序检查,看看对应于该数字的单词在两个句子中是否相同 因此,如果每个句子中有8个单词,并且他们选择了数字4,程序会比较两个句子中的第四个单词,然后告诉用户这两个“字符串”匹配 使用数组还是仅使用字符串更好Ruby 比较数组中的单个单词,ruby,arrays,string,split,Ruby,Arrays,String,Split,我正在寻找一种方法,将用户输入的两个句子,然后让用户选择一个数字,让程序检查,看看对应于该数字的单词在两个句子中是否相同 因此,如果每个句子中有8个单词,并且他们选择了数字4,程序会比较两个句子中的第四个单词,然后告诉用户这两个“字符串”匹配 使用数组还是仅使用字符串更好 在这种情况下我会使用split吗 是的,我认为拆分是一个不错的选择 假设单词边界是空白,您可以这样做: string1 = "my name is Jerry" string2 = "his name was Pete" n
在这种情况下我会使用split吗 是的,我认为拆分是一个不错的选择 假设单词边界是空白,您可以这样做:
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
使用数组最好,因为它们更容易处理。这更多的是个人喜好。 我会这样做
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
这太复杂了,不可能在一小段代码中完成。您需要自然语言处理和人工智能来检测单词边界。如果用户输入一个字符串
“纽约市”
,它应该是一个单词,还是两个单词newyork
和city
,还是三个?除非你能检测到单词的边界,否则你无法计算单词。我知道数组的计数范围是0,1,2,。。。但是字符串是否以1开头?@user3295198 string#split也会生成一个数组。重点是他想比较第二个和第三个单词,所以分别使用了索引1和索引2。谢谢Levi,在添加了我的用户输入代码并执行了if-then-else语句后,这看起来很有效。啊,感谢你的生命,你的也是一个很好的答案。这里可以有两个选中的答案吗?你可以对每个有用的答案进行投票,但你只能选择一个答案接受。救援行动不起任何作用;如果数字太大,您不会得到错误,您会得到nil
。是的,可以在此处添加自定义救援。它只是一个原型