Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 比较数组中的单个单词_Ruby_Arrays_String_Split - Fatal编程技术网

Ruby 比较数组中的单个单词

Ruby 比较数组中的单个单词,ruby,arrays,string,split,Ruby,Arrays,String,Split,我正在寻找一种方法,将用户输入的两个句子,然后让用户选择一个数字,让程序检查,看看对应于该数字的单词在两个句子中是否相同 因此,如果每个句子中有8个单词,并且他们选择了数字4,程序会比较两个句子中的第四个单词,然后告诉用户这两个“字符串”匹配 使用数组还是仅使用字符串更好 在这种情况下我会使用split吗 是的,我认为拆分是一个不错的选择 假设单词边界是空白,您可以这样做: string1 = "my name is Jerry" string2 = "his name was Pete" n

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

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

使用数组还是仅使用字符串更好


在这种情况下我会使用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
。是的,可以在此处添加自定义救援。它只是一个原型