Ich habe eine Schnur
"1,2,3,4"
und ich möchte es in ein Array konvertieren:
[1,2,3,4]
Wie?
Ich habe eine Schnur
"1,2,3,4"
und ich möchte es in ein Array konvertieren:
[1,2,3,4]
Wie?
Antworten:
>> "1,2,3,4".split(",")
=> ["1", "2", "3", "4"]
Oder für ganze Zahlen:
>> "1,2,3,4".split(",").map { |s| s.to_i }
=> [1, 2, 3, 4]
Oder für spätere Versionen von Ruby (> = 1,9 - wie von Alex hervorgehoben):
>> "1,2,3,4".split(",").map(&:to_i)
=> [1, 2, 3, 4]
String Integer
ohne Platz alsString
arr = "12345"
arr.split('')
output: ["1","2","3","4","5"]
String Integer
mit Raum alsString
arr = "1 2 3 4 5"
arr.split(' ')
output: ["1","2","3","4","5"]
String Integer
ohne Platz alsInteger
arr = "12345"
arr.split('').map(&:to_i)
output: [1,2,3,4,5]
arr = "abc"
arr.split('')
output: ["a","b","c"]
Erklärung :
arr
-> Zeichenfolge, mit der Sie eine Aktion ausführen werden.split()
-> ist eine Methode, die die Eingabe aufteilt und als Array speichert.''
oder ' '
oder ','
-> ist ein Wert, der aus der angegebenen Zeichenfolge entfernt werden muss.Der einfachste Weg, eine Zeichenfolge mit einem Trennzeichen wie einem Komma zu konvertieren, ist die Verwendung der Split-Methode
"1,2,3,4".split(',') # "1", "2", "3", "4"]
Weitere Informationen zur Verwendung der Split-Methode finden Sie in den Ruby-Dokumenten
Teilt str basierend auf einem Trennzeichen in Teilzeichenfolgen und gibt ein Array dieser Teilzeichenfolgen zurück.
Wenn pattern ein String ist, wird sein Inhalt als Trennzeichen beim Teilen von str verwendet. Wenn das Muster ein einzelnes Leerzeichen ist, wird str in Leerzeichen aufgeteilt, wobei führende Leerzeichen und Läufe zusammenhängender Leerzeichen ignoriert werden.
Wenn das Muster ein Regexp ist, wird str dort geteilt, wo das Muster übereinstimmt. Immer wenn das Muster mit einer Zeichenfolge mit der Länge Null übereinstimmt, wird str in einzelne Zeichen aufgeteilt. Wenn das Muster Gruppen enthält, werden die entsprechenden Übereinstimmungen auch im Array zurückgegeben.
Wenn das Muster weggelassen wird, wird der Wert von $; wird eingesetzt. Wenn $; ist nil (dies ist die Standardeinstellung), str wird auf Leerzeichen aufgeteilt, als ob `'angegeben worden wäre.
Wenn der Grenzwertparameter weggelassen wird, werden nachfolgende Nullfelder unterdrückt. Wenn limit eine positive Zahl ist, wird höchstens diese Anzahl von Feldern zurückgegeben (wenn limit 1 ist, wird die gesamte Zeichenfolge als einziger Eintrag in einem Array zurückgegeben). Wenn negativ, gibt es keine Begrenzung für die Anzahl der zurückgegebenen Felder, und nachfolgende Nullfelder werden nicht unterdrückt.
"12345".each_char.map(&:to_i)
each_char
macht im Grunde das gleiche wie split('')
: Es teilt einen String in ein Array seiner Zeichen.
hmmm, ich merke gerade, dass die Zeichenfolge in der ursprünglichen Frage Kommas enthält, daher ist meine Antwort nicht wirklich hilfreich ;-( ..