Entfernen eines Zeichens in eine Indexposition in Ruby
Im Grunde, was die Frage sagt. Wie lösche ich ein Zeichen an einer bestimmten index-position in einem string? Die String-Klasse nicht zu haben scheinen, irgendwelche Methoden, dies zu tun.
Wenn ich einen string "HALLO" ich möchte die Ausgabe dieses
["ELLO", "HLLO", "HELO", "HELO", "HELL"]
Ich tun, dass die Verwendung
d = Array.new(c.length){|i| c.slice(0, i)+c.slice(i+1, c.length)}
Ich weiß nicht, ob mit Stückchen! wird hier zu arbeiten, denn es wird ändern Sie die ursprüngliche Zeichenfolge, richtig?
InformationsquelleAutor Maulin | 2009-10-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
self.class.new(self).maulin! n
undself.dup.maulin! n
?ich suppse es soll einfach
dup.maulin! n
, guter PunktInformationsquelleAutor DigitalRoss
Nicht Str.slice! tun Sie es? Aus ruby-doc.org:
Dann
str.slice!(fixnum); str
.InformationsquelleAutor Berry
Wenn Sie mit Ruby 1.8, die Sie verwenden können, delete_at (gemischt aus Enumerable), sonst in 1.9, die Sie verwenden können, slice!.
Beispiel:
InformationsquelleAutor JRL
Zu vermeiden benötigen, um monkey patch
String
Sie können Gebrauch machen vontap
:Wenn Sie brauchen, um Ihre ursprüngliche Zeichenfolge unverändert, nutzen
dup
, zB.abc.dup.tap
.InformationsquelleAutor Alex Moore-Niemi
Ich so etwas Tat
Wobei c die Zeichenfolge, und ich die index-position, die ich löschen möchten. Gibt es einen besseren Weg?
InformationsquelleAutor Maulin