Notez que le texte a été trié à partir du texte délimité par des tabulations pour le rendre plus facile à voir.
profile.txt #LR utf-8
john m 19
micheal m 28
abbie f 31
dabid m 17
claire f 26
À gauche, "Nom, Sexe, Année" sont répertoriés séparés par des tabulations. Je voudrais les trier par nom.
Tout d'abord, vérifiez comment le texte lui-même est sorti.
File.open("meibo.txt") do |text|
text.each_line do |line|
p line
end
end
Lorsque vous développez le fichier avec
$ ruby example.rb
"john\tm\t19\n"
"micheal\tm\t28\n"
"abbie\tf\t31\n"
"dabid\tm\t17\n"
"claire\tf\t26\n"
Puisqu'il est exprimé comme, créez un tableau de chaque ligne à l'exclusion de l'espace de tabulation et du code de saut de ligne Tri et sortie en standard.
Mettez chaque ligne dans le tableau une fois comme [nom, sexe, âge]
.
profile = []
File.open("profile.txt") do |text|
text.each_line do |line|
profile << line.chomp.split("\t")
end
end
Par .chomp
pour supprimer \ n
à la fin de chaque ligne et délimiteur de tabulation,.split ("\ t")
sépare
$ ruby example.rb
[["john", "m", "19"],
["micheal", "m", "28"],
["abbie", "f", "31"],
["dabid", "m", "17"],
["claire", "f", "26"]]
De cette façon, le tableau «profile» a été parfaitement obtenu »[nom, sexe, âge]« et seulement les données nécessaires.
Puisque ruby a une méthode sort_by
, utilisez cette méthode pour trier par nom.
profile_sort = profile.sort_by{|man| man[0]}
pp profile_sort
Le résultat de sortie est
$ ruby example.rb
[["abbie", "f", "31"],
["claire", "f", "26"],
["dabid", "m", "17"],
["john", "m", "19"],
["micheal", "m", "28"]]
Et il a été trié en toute sécurité par ordre de nom.
Lorsque vous atteignez ce point, sortez le tableau trié, redirigez-le et triez-le.
profile_sort.each do |text|
puts text.join("\t")
end
Concaténez les chaînes du tableau en les connectant avec \ t
. Il sera délimité par des tabulations lors de la sortie avec put
.
De plus, met
affichera un saut de ligne, donc la peine d'écrire met text.join (" \ t ") +" \ n "
Vous n'avez pas besoin d'écrire un code de saut de ligne.
Faites cela et la sortie sera
$ ruby example.rb
abbie f 31
claire f 26
dabid m 17
john m 19
micheal m 28
Oui, vous avez trié avec succès les fichiers délimités par des tabulations.
Recommended Posts