8
votes

Comment puis-je chombuer chaque ligne dans un tableau à la fois?

Dans l'intérêt d'écrire un code de nettoyage ...

IO.popen("Generate a list of files").readlines.each{ |line|
   chomped_line = line.chomp
   # ...
}


0 commentaires

4 Réponses :


23
votes
IO.popen("Generate a list of files").readlines.map(&:chomp)

0 commentaires

3
votes
IO.read("something").split($/)
$/ is the separator string. IO.read closes the file after reading.

1 commentaires

Juste une note que $ / correspondent \ n newlines strictement tandis que CHOMP gère \ r \ n aussi. Si vous savez que vous n'aurez jamais jamais \ n nouvelles lignes de cette solution est beaucoup plus rapide que l'option Carte / Chomp.



1
votes

Je le ferais plus vite et je prendrais moins de mémoire:

  1. Utilisez "chaque_line" plutôt que "Readlines.Chaque". Pourquoi lire l'ensemble de la sortie à la fois?
  2. Utilisez "Chomp!" (Mark d'exclamation) pour changer la chaîne en place.

    alors il est: xxx


0 commentaires

3
votes
# Example 1
File.readlines("file.txt").each{|line| line.chomp!}

# Example 2
File.readlines("file.txt").map(&:chomp)

# Example 3
File.open("file.txt", "r"){|file| file.readlines.collect{|line| line.chomp}}

0 commentaires