Ich versuche eine Funktion für die Auswahl zu finden, z. B. die ersten 100 Zeichen der Zeichenfolge. In PHP gibt es die substr- Funktion
Hat Ruby eine ähnliche Funktion?
Versuchen Sie foo[0...100]
, jeder Bereich reicht aus. Bereiche können auch negativ werden. Es ist in der Dokumentation von Ruby gut erklärt .
foo[0..100]
undfoo[0...100]
unterschiedlich sind. Einer ist null bis einhundert, während der andere null bis neunundneunzig ist.foo[0,100]
ist ebenfalls exklusiv .Verwenden des
[]
Operators ( docs ):foo[0, 100] # Get 100 characters starting at position 0 foo[0..99] # Get all characters in index range 0 to 99 (inclusive!) foo[0...100] # Get all characters in index range 0 to 100 (exclusive!)
Update für Ruby 2.7 : Beginless-Bereiche sind jetzt hier (Stand: 25.12.2019) und wahrscheinlich die kanonische Antwort für "Rückgabe des ersten xx eines Arrays":
foo[...100] # Get all chars from the beginning up until the 100th (exclusive)
Verwenden der
.slice
Methode ( docs ):foo.slice(0, 100) # Get 100 characters starting at position 0 foo.slice(0...100) # Behaves the same as operator []
Und der Vollständigkeit halber:
foo[0] # Returns the indexed character, the first in this case foo[-100, 100] # Get 100 characters starting at position -100 # Negative indices are counted from the end of the string/array # Caution: Negative indices are 1-based, the last element is -1 foo[-100..-1] # Get the last 100 characters in order foo[-1..-100] # Get the last 100 characters in reverse order foo[-100...foo.length] # No index for one beyond last character
Update für Ruby 2.6 : Endlose Bereiche sind jetzt verfügbar (Stand: 25.12.2018)!
foo[0..] # Get all chars starting at the first. Identical to foo[0..-1] foo[-100..] # Get the last 100 characters
quelle