在遍历文本行时,执行 if else 语句(或类似语句)以检查字符串是否为单个单词的最简洁方法(大多数“Ruby”)是什么?
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
在遍历文本行时,执行 if else 语句(或类似语句)以检查字符串是否为单个单词的最简洁方法(大多数“Ruby”)是什么?
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
既然你问的是“最 Ruby”的方式,我会将该方法重命名为single_word?
一种方法是检查是否存在空格字符。
def single_word?(string)
!string.strip.include? " "
end
但是,如果您想允许满足您对单词的定义的特定字符集,可能包括撇号和连字符,请使用正则表达式:
def single_word?(string)
string.scan(/[\w'-]+/).length == 1
end
按照您对评论中给出的单词的定义:
[A] stripped string that doesn't [include] whitespace
代码是
def check_if_single_word(string)
string.strip == string and string.include?(" ").!
end
check_if_single_word("two words") # => false
check_if_single_word("New York") # => false
check_if_single_word("hello") # => true
check_if_single_word(" hello") # => false
这里有一些代码可以帮助你:
def check_if_single_word(string)
ar = string.scan(/\w+/)
ar.size == 1 ? "only one word" : "more than one word"
end
s1 = "two words"
s2 = "hello"
check_if_single_word s1 # => "more than one word"
check_if_single_word s2 # => "only one word"
def check_if_single_word(string)
string.scan(/\w+/).size == 1
end
s1 = "two words"
s2 = "hello"
check_if_single_word s1 # => false
check_if_single_word s2 # => true
红宝石之路。延长课程String
class String
def one?
!self.strip.include? " "
end
end
然后用于"Hello world".one?
检查字符串是否包含一个或多个单词。
我会检查字符串中是否存在空格。
def check_if_single_word(string)
return !(string.strip =~ / /)
end
.strip 将删除可能存在于字符串开头和结尾的多余空格。
!(myString =~ / /)
表示字符串不匹配单个空格的正则表达式。同样,您也可以使用!string.strip[/ /]
.