Wie nehme ich eine Zeichenfolge und konvertiere sie in Ruby in Klein- oder Großbuchstaben?
Wie nehme ich eine Zeichenfolge und konvertiere sie in Ruby in Klein- oder Großbuchstaben?
Antworten:
Ruby hat einige Methoden, um den Fall von Strings zu ändern. Verwenden Sie zum Konvertieren in Kleinbuchstaben downcase
:
"hello James!".downcase #=> "hello james!"
In ähnlicher Weise wird upcase
jeder Buchstabe groß geschrieben und capitalize
der erste Buchstabe der Zeichenfolge großgeschrieben, der Rest wird jedoch in Kleinbuchstaben geschrieben:
"hello James!".upcase #=> "HELLO JAMES!"
"hello James!".capitalize #=> "Hello james!"
"hello James!".titleize #=> "Hello James!"
Wenn Sie eine Zeichenfolge an Ort und Stelle ändern möchten, können Sie jeder dieser Methoden ein Ausrufezeichen hinzufügen:
string = "hello James!"
string.downcase!
string #=> "hello james!"
Weitere Informationen finden Sie in der Dokumentation zu String .
nil
; Sie sollten sie verwenden, wenn Sie ein Objekt an Ort und Stelle ändern möchten, nicht, wenn Sie den Wert in einer anderen Variablen speichern möchten.
.titleize
ist von Rails. Kann es nicht in der Ruby- String
Dokumentation finden
titleize
muss aus dieser Antwort entfernt werden oder zumindest angeben, dass es sich um eine Rails-Methode handelt.
Sie können alle für einen String verfügbaren Methoden herausfinden, indem Sie irb öffnen und ausführen:
"MyString".methods.sort
Und für eine Liste der Methoden, die insbesondere für Zeichenfolgen verfügbar sind:
"MyString".own_methods.sort
Ich benutze dies, um neue und interessante Dinge über Objekte herauszufinden, von denen ich sonst vielleicht nicht gewusst hätte, dass sie existieren.
String.public_instance_methods(false)
diese Option , um alle Methoden für öffentliche Instanzen zu finden, die speziell von definiert sind String
.
Wie bereits bei @endeR erwähnt, ist das Juwel unicode_utils mehr als ausreichend, wenn es um Internationalisierung geht.
$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"
String-Manipulationen in Ruby 2.4 sind jetzt unicodeempfindlich.
Die Ruby- downcase
Methode gibt eine Zeichenfolge zurück, deren Großbuchstaben durch Kleinbuchstaben ersetzt werden.
"string".downcase
https://ruby-doc.org/core-2.1.0/String.html#method-i-downcase
Die Rails Aktive Unterstützung Juwel bietet upcase
, downcase
, swapcase
, capitalize
etc. Methoden mit Unterstützung der Internationalisierung:
gem install activesupport
irb -ractive_support/core_ext/string
"STRING ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
=> "string áâãàçéêíóôõú"
"string áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING ÁÂÃÀÇÉÊÍÓÔÕÚ"
Sie können Strings Methode finden , wie "strings".methods
Sie Zeichenfolge wie definieren können upcase
, downcase
, titleize
. Zum Beispiel,
"hii".downcase
"hii".titleize
"hii".upcase
Die .swapcase- Methode wandelt die Großbuchstaben in einer Zeichenfolge in Kleinbuchstaben und die Kleinbuchstaben in Großbuchstaben um.
'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING
'Testing'.swapcase #=> tESTING
Seit Ruby 2.4 gibt es eine integrierte Unicode-Fallzuordnung . Quelle: https://stackoverflow.com/a/38016153/888294 . Weitere Informationen finden Sie in der Ruby 2.4.0-Dokumentation: https://ruby-doc.org/core-2.4.0/String.html#method-i-downcase
Funktioniert nicht für alle, aber das hat mir viel Zeit gespart. Ich hatte gerade das Problem mit einer CSV, die "TRUE" oder "FALSE" zurückgibt, also habe ich gerade VALUE.to_s.downcase == "true" hinzugefügt, wodurch der boolesche Wert true zurückgegeben wird, wenn der Wert "TRUE" ist, und false, wenn der Wert "FALSE" ist ", funktioniert aber trotzdem für den Booleschen Wert wahr und falsch.