14 Stimmen

Entfernen Sie die letzten 2 Zeichen aus einer Zeichenkette in Ruby?

Ich sammle die E-Mail-Adressen aller meiner Benutzer für ein solches Massen-Mailing:

def self.all_email_addresses
  output = ''
  User.all.each{|u| output += u.email + ", " }
      output
end

Am Ende steht jedoch ein zusätzliches ", " in der Kette der E-Mail-Adressen.

Wie kann ich das loswerden / gibt es eine bessere Möglichkeit, eine durch Kommata getrennte Liste von E-Mail-Adressen zu erhalten?

29voto

DigitalRoss Punkte 138823

Die letzten beiden Zeichen entfernen

str.chop.chop # ...or...
str[0..-3]

Das beantwortet zwar genau die Frage, aber ich stimme zu, dass es nicht der beste Weg ist, das Problem zu lösen.

26voto

giorgian Punkte 3785

Verwenden Sie join:

def self.all_email_addresses
  User.all.collect {|u| u.email}.join ', '
end

13voto

onyxrev Punkte 639

Oder einfach nur "yadayada"[0..-3] reicht aus.

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