检查字符串是否包含一个或多个单词

Jon*_*n_W 1 ruby string whitespace

在循环文本行时,最好的方法(大多数"Ruby")做一个if else语句(或类似的)以检查字符串是否是单个单词是什么?

def check_if_single_word(string)
   # code here
end

s1 = "two words"
s2 = "hello"

check_if_single_word(s1) -> false
check_if_single_word(s2) -> true
Run Code Online (Sandbox Code Playgroud)

Mar*_*mas 5

既然你问的是"最Ruby"的方式,我会把方法重命名为 single_word?

一种方法是检查是否存在空格字符.

def single_word?(string)
  !string.strip.include? " "
end
Run Code Online (Sandbox Code Playgroud)

但是如果你想允许符合的单词定义的特定字符集,可能包括撇号和连字符,请使用正则表达式:

def single_word?(string)
  string.scan(/[\w'-]+/).length == 1
end
Run Code Online (Sandbox Code Playgroud)