Bir dizeyi alıp Ruby'de küçük harfe veya büyük harfe nasıl dönüştürebilirim?
Bir dizeyi alıp Ruby'de küçük harfe veya büyük harfe nasıl dönüştürebilirim?
Yanıtlar:
Ruby'nin dize durumunu değiştirmek için birkaç yöntemi vardır. Küçük harfe dönüştürmek için şunu kullanın downcase
:
"hello James!".downcase #=> "hello james!"
Benzer şekilde, upcase
her harfi capitalize
büyük ve dizenin ilk harfini büyük yapar, ancak geri kalanını küçültür:
"hello James!".upcase #=> "HELLO JAMES!"
"hello James!".capitalize #=> "Hello james!"
"hello James!".titleize #=> "Hello James!"
Bir dizeyi yerinde değiştirmek istiyorsanız, aşağıdaki yöntemlerden birine ünlem işareti ekleyebilirsiniz:
string = "hello James!"
string.downcase!
string #=> "hello james!"
Daha fazla bilgi için Dize belgelerine bakın .
nil
; bir nesneyi yerinde değiştirmek istiyorsanız, değeri başka bir değişkende saklamak istemiyorsanız kullanmalısınız.
.titleize
Rails'ten. Ruby String
belgelerinde
titleize
bu yanıttan kaldırılması veya en azından bunun bir Rails yöntemi olduğunu belirtmeniz gerekir.
Bir String'de bulunan tüm yöntemleri irb'yi açıp çalıştırarak bulabilirsiniz:
"MyString".methods.sort
Ve özellikle dizeler için mevcut yöntemlerin bir listesi için:
"MyString".own_methods.sort
Bunu, başka türlü varlığını bilmediğim nesneler hakkında yeni ve ilginç şeyler bulmak için kullanıyorum.
String.public_instance_methods(false)
Tarafından özel olarak tanımlanan tüm genel yönetim ortamı yöntemlerini bulmak için kullanın String
.
Bahsedilen @ endeR gibi, eğer uluslararasılaşma bir endişe ise, unicode_utils gem yeterli değildir.
$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"
Ruby 2.4'teki dize manipülasyonları artık unicode duyarlıdır.
Ruby downcase
yöntemi, büyük harfleri küçük harflerle değiştirilen bir dize döndürür.
"string".downcase
https://ruby-doc.org/core-2.1.0/String.html#method-i-downcase
Raylar Aktif Destek mücevher sağlar upcase
, downcase
, swapcase
, capitalize
, vb uluslararası destekli yöntemleri:
gem install activesupport
irb -ractive_support/core_ext/string
"STRING ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
=> "string áâãàçéêíóôõú"
"string áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING ÁÂÃÀÇÉÊÍÓÔÕÚ"
"strings".methods
Dize upcase
, ' downcase
, olarak tanımlayabilirsiniz gibi dizeler yöntemini bulabilirsiniz titleize
. Örneğin,
"hii".downcase
"hii".titleize
"hii".upcase
.Swapcase bir dizede büyük harfli de sonraları küçük harfe yöntem dönüşümleri ve küçük harfler büyük harfe.
'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING
'Testing'.swapcase #=> tESTING
Ruby 2.4'ten beri tam bir Unicode vaka eşlemesi vardır . Kaynak: https://stackoverflow.com/a/38016153/888294 . Ayrıntılar için Ruby 2.4.0 belgelerine bakın: https://ruby-doc.org/core-2.4.0/String.html#method-i- downcase
Herkes için işe yaramayacak, ama bu bana biraz zaman kazandırdı. Ben sadece "DOĞRU veya" YANLIŞ "dönen bir CSV ile ilgili sorun vardı, bu yüzden değer" DOĞRU ise boolean true ve "YANLIŞ olursa" boolean true döndürecek VALUE.to_s.downcase == "true" ekledi ", ancak yine de doğru ve yanlış boole için çalışır.