我有这样的声明:
string_tokens[-1].ends_with?(",") || string_tokens[-1].ends_with?("-") || string_tokens[-1].ends_with?("&")
字符串我想把所有的token(",","-","&")放到一个常量中,并简化上面的问题,“字符串是否以这些字符中的任何一个结尾”,但我不确定如何做到这一点。
","
"-"
"&"
zyfwsgd61#
是的
CONST = %w|, - &|.freeze string_tokens[-1].end_with?(*CONST)
字符串使用方法:
'test,'.end_with?(*CONST) #=> true 'test&'.end_with?(*CONST) #=> true 'test-'.end_with?(*CONST) #=> true
型使用*(splat运算符)将多个参数传递给String#end_with?,因为它接受多个参数。
*
String#end_with?
dz6r00yl2#
你也可以使用regex:
chars = %w(, - &) ENDS_WITH_CHAR = Regexp.new("["+chars.map{|s| Regexp.escape(s)}.join+']\z') "abc-" =~ ENDS_WITH_CHAR # or with Ruby 2.4 "abc-".match? ENDS_WITH_CHAR
字符串
jgovgodb3#
str = 'hello-' ',-&'.include? str[-1] #=> true ',$&'.include? str[-1] #=> false
3条答案
按热度按时间zyfwsgd61#
是的
字符串
使用方法:
型
使用
*
(splat运算符)将多个参数传递给String#end_with?
,因为它接受多个参数。dz6r00yl2#
你也可以使用regex:
字符串
jgovgodb3#
字符串