Saltar al contenido

Cómo eliminar el salto de línea al leer archivos en Ruby

Te sugerimos que revises esta resolución en un ambiente controlado antes de enviarlo a producción, un saludo.

Solución:

considere también el parámetro chomp opcional en File.readlines

File.readlines("/path/to/file", chomp: true)

puts agrega una nueva línea al final de la salida. la impresión no. Utilice la impresión. Puede resolver su problema. Además, use .strip.

"tgoodbyern".strip   #=> "goodbye"

Su código tiene un problema menor que causa los resultados que está experimentando.

cuando usas:

name1 = File.readlines('first.txt').sample(1)

El valor devuelto NO ES una cadena, sino una matriz con 1 muestra aleatoria. es decir:

["Jhon"]

Es por eso que obtienes la salida. ["Jhon"] cuando usas print.

Ya que esperas (y prefieres) un stringintente esto en su lugar:

name1 = File.readlines('first.txt').sample(1)[0]
name2 = File.readlines('middle.txt').sample(1)[0]
name3 = File.readlines('last.txt').sample(1)[0]

o:

name1 = File.readlines('first.txt').sample(1).pop
name2 = File.readlines('middle.txt').sample(1).pop
name3 = File.readlines('last.txt').sample(1).pop

o, probablemente lo que quisiste decirsin argumentos, sample devolverá un objeto en lugar de una matriz:

name1 = File.readlines('first.txt').sample
name2 = File.readlines('middle.txt').sample
name3 = File.readlines('last.txt').sample

Además, mientras imprime, sería mejor si creara uno string para incluir todos los espacios y el formato que deseaba. es decir:

name1 = File.readlines('first.txt').sample(1).pop
name2 = File.readlines('middle.txt').sample(1).pop
name3 = File.readlines('last.txt').sample(1).pop

puts "#name1 #name2 #name3."
# or
print "#name1 #name2 #name3."

Si para ti ha sido de ayuda este post, sería de mucha ayuda si lo compartes con otros juniors de este modo contrubuyes a difundir este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *