5 Stimmen

Konvertierung einer Zahlenfolge in ein Zahlenfeld

In meiner Anwendung habe ich ein Textfeld, in das der Benutzer etwas wie folgt eingibt

"1,2,3,4"

die in der Datenbank gespeichert wird. Wenn ich nun die inneren Zahlen verwenden möchte, habe ich zwei Möglichkeiten:

"1,2,3,4".split(',')

OR

string.scan(/\d+/) do |x|
    a << x
end

Auf beiden Wegen erhalte ich ein Array wie

 ["1","2","3","4"] 

und dann kann ich die Zahlen verwenden, indem ich to_i für jede einzelne von ihnen aufrufe.
Gibt es eine bessere Methode, um dies zu tun, die die

"1,2,3" to [1,2,3] and not ["1","2","3"]

13voto

Jimmy Huang Punkte 4192
str.split(",").map {|i| i.to_i}

aber die Idee ist die gleiche für Sie....

4 Stimmen

Und in 1.8.7p302: str.split(',').map(&:to_i)

0 Stimmen

Ich dachte, &:to_i sei aufgrund von Leistungsproblemen verpönt. Nein? Gut für die Leute zu wissen, dass es existiert, obwohl sicher.

1voto

Aditya Manohar Punkte 2074

Sie können dies tun.

t = "1,2,3,4".split(',').collect{|n| n.to_i}

0voto

Robin Wood Punkte 41

In Ruby 1.9.3 können Sie Folgendes tun:

Kein Leerzeichen nach dem Komma:

"1,2,3,4".split(',')  # => ["1","2","3","4"]

Mit dem Leerzeichen nach dem Komma:

"1,2,3,4".split(', ')  # => ["1,2,3,4"]

Kein Leerzeichen nach dem Komma:

"1,2,3,4".split(',').map(&:to_i)  # => [1,2,3,4]

Mit einem Leerzeichen nach dem Komma erhalten Sie dies:

"1,2,3,4".split(', ').map(&:to_i)  # => [1]

-3voto

Anubhaw Punkte 5888

Sie können dies mit der folgenden Methode tun:- "1,2,3,4".split(/,/)

Dies führt zu folgendem Ergebnis:-

["1", "2", "3", "4"]

Danke....

1 Stimmen

Die Frage ist, wie man [1,2,3,4] :p

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X