Ich habe ein Array von Strings:effizienter als gsub zweimal
orders = ["#1174.2", "#1176.3", "#1177.2", "#1178.1", "#1180.1"]
Ich tue dies die führende „#“ zu entfernen und „0,1"
orders.each do |numbers|
puts numbers.gsub!("#", "").gsub!(/\.[0-9]/, "")
end
# returns 1174, 1176 etc..
das nachlaufHinter“ .1 "könnte eine beliebige Zahl bis 9 sein. Gibt es einen besseren/schnelleren Weg dies zu tun?
Auch, FWIW, würden Sie wahrscheinlich gsub, nicht gsub verwenden möchten! für dein Beispiel. Die Bang-Methoden sind in der Regel nicht gut verkettet, da sie nur die Zeichenfolge zurückgeben, wenn Substitutionen durchgeführt wurden - dies könnte zu kleinen Fehlern führen. https://ruby-doc.org/core-2.1.4/String.html#method-i-gsub –
Haben die Zahlen immer das gleiche Format, d. h. vier Ziffern, eine Dezimalzahl und eine einzelne Ziffer? –
Erwarten Sie, dass die Zahlen richtig gerundet werden? –