¿Cuál es la mejor manera de encontrar si una cadena comienza con otra en Ruby (sin rieles)?
ruby
string
startswith
Guillaume Coté
fuente
fuente
Respuestas:
[editar] Esto es algo que no sabía antes de esta pregunta:
start_with
toma múltiples argumentos.fuente
start_with?
, pero MRI 1.9 sí, al igual que Rails.String#start_with?
.start_with?
. Supongo que lo escribí cuando cargué irb para probarlo.starts_with?
, que en 1.8.7 y superior solo tiene un aliasstart_with?
.Dado que aquí se presentan varios métodos, quería averiguar cuál era el más rápido. Usando Ruby 1.9.3p362:
Parece que
start_with?
es el más rápido del grupo.Resultados actualizados con Ruby 2.2.2p95 y una máquina más nueva:
fuente
"FooBar".downcase.start_with?("foo")
.El método mencionado por steenslag es breve y, dado el alcance de la pregunta, debe considerarse la respuesta correcta. Sin embargo, también vale la pena saber que esto se puede lograr con una expresión regular, que si no está familiarizado con Ruby, es una habilidad importante para aprender.
Juega con Rubular: http://rubular.com/
Pero en este caso, la siguiente declaración de ruby devolverá verdadero si la cadena de la izquierda comienza con 'abc'. La \ A en el literal regex a la derecha significa 'el comienzo de la cadena'. Juegue con el rubular: quedará claro cómo funcionan las cosas.
fuente
me gusta
fuente
[/\Astr/]
aquí. Tu expresión regular también coincide"another\nstring"
.