J'ai une ficelle
"1,2,3,4"
et je voudrais le convertir en tableau:
[1,2,3,4]
Comment?
>> "1,2,3,4".split(",")
=> ["1", "2", "3", "4"]
Ou pour les entiers:
>> "1,2,3,4".split(",").map { |s| s.to_i }
=> [1, 2, 3, 4]
Ou pour les versions ultérieures de Ruby (> = 1.9 - comme l'a souligné Alex):
>> "1,2,3,4".split(",").map(&:to_i)
=> [1, 2, 3, 4]
"1,2,3,4".split(",")
comme des chaînes
"1,2,3,4".split(",").map { |s| s.to_i }
sous forme d'entiers
String Integer
sans espace comme String
arr = "12345"
arr.split('')
output: ["1","2","3","4","5"]
String Integer
avec un espace comme String
arr = "1 2 3 4 5"
arr.split(' ')
output: ["1","2","3","4","5"]
String Integer
sans espace comme Integer
arr = "12345"
arr.split('').map(&:to_i)
output: [1,2,3,4,5]
arr = "abc"
arr.split('')
output: ["a","b","c"]
Explication:
arr
-> chaîne que vous allez exécuter.split()
-> est une méthode qui scinde l'entrée et la stocke sous forme de tableau.''
ou ' '
ou ','
-> est une valeur qui doit être supprimée de la chaîne donnée.le moyen le plus simple de convertir une chaîne comportant un délimiteur, tel qu'une virgule, consiste simplement à utiliser la méthode split
"1,2,3,4".split(',') # "1", "2", "3", "4"]
vous pouvez trouver plus d'informations sur l'utilisation de la méthode split dans le Ruby docs
Divise str en sous-chaînes en fonction d'un délimiteur, renvoyant un tableau de ces sous-chaînes.
Si pattern est une chaîne, son contenu est utilisé comme délimiteur lors du fractionnement de str. Si motif est un espace unique, str est divisé en espaces, les espaces en tête et les caractères d'espacement contigus ignorés.
Si pattern est une expression rationnelle, str est divisé en deux parties. Chaque fois que le motif correspond à une chaîne de longueur nulle, str est divisé en caractères individuels. Si pattern contient des groupes, les correspondances respectives seront également renvoyées dans le tableau.
Si motif est omis, la valeur de $; est utilisé. Si $; est nul (ce qui est la valeur par défaut), str est divisé en espaces comme si "" était spécifié.
Si le paramètre limit est omis, les champs nuls de fin sont supprimés. Si limit est un nombre positif, ce nombre de champs au plus sera renvoyé (si limit est égal à 1, la chaîne entière est renvoyée en tant que seule entrée d'un tableau). S'il est négatif, le nombre de champs retournés n'est pas limité et les champs nuls suivants ne sont pas supprimés.