I got these two codes from two websites defining the longest word in a string:
Code 1.
def longest_word(sentence)
words = sentence.split(" ")
longest_word = nil
word_idx = 0
while word_idx < words.length
current_word = words[word_idx]
if longest_word == nil
longest_word = current_word
elsif longest_word.length < current_word.length
longest_word = current_word
end
word_idx += 1
end
longest_word
end
Code 2.
def LongestWord(sen)
arr = sen.split.map do |w|
/[a-zA-Z0-9\s]+/.match(w)
end
longest = arr.max_by do |w|
w.to_s.length
end
longest
end
But one code gives me true, and one gives me false. Can someone tell me why?
The difference is:
LongestWordreturnsMatchDatahttp://ruby-doc.org/core-2.2.0/MatchData.htmllongest_wordreturnsStringso