Qual a melhor maneira de descobrir se uma string começa com outra em Ruby (sem trilhos)?
ruby
string
startswith
Guillaume Coté
fonte
fonte
Respostas:
[editar] Isso é algo que eu não sabia antes desta pergunta:
start_with
leva vários argumentos.fonte
start_with?
, mas a MRI 1.9 possui, assim como o Rails.String#start_with?
.start_with?
. Acho que digitei quando carreguei o irb para experimentá-lo.starts_with?
, que em 1.8.7 e acima é apenas um alias parastart_with?
.Como existem vários métodos apresentados aqui, eu queria descobrir qual era o mais rápido. Usando Ruby 1.9.3p362:
Então parece que não
start_with?
é o mais rápido do grupo.Resultados atualizados com o Ruby 2.2.2p95 e uma máquina mais recente:
fonte
"FooBar".downcase.start_with?("foo")
.O método mencionado por steenslag é conciso e, dado o escopo da pergunta, deve ser considerada a resposta correta. No entanto, também vale a pena saber que isso pode ser alcançado com uma expressão regular, que, se você ainda não está familiarizado com Ruby, é uma habilidade importante para aprender.
Jogue com Rubular: http://rubular.com/
Mas, neste caso, a seguinte instrução ruby retornará true se a string à esquerda começar com 'abc'. O \ A no literal da regex à direita significa 'o início da string'. Brinque com a rubular - ficará claro como as coisas funcionam.
fonte
Eu gosto
fonte
[/\Astr/]
aqui. Sua regex também corresponde"another\nstring"
.