Hoe kan ik een tekenreeks nemen en deze omzetten in kleine letters of hoofdletters in Ruby?
Antwoord 1, autoriteit 100%
Ruby heeft een paar methodes om de hoofdletters van strings te veranderen. Gebruik downcase
om naar kleine letters te converteren:
"hello James!".downcase #=> "hello james!"
Evenzo geeft upcase
elke letter een hoofdletter en capitalize
een hoofdletter, maar de rest in kleine letters:
"hello James!".upcase #=> "HELLO JAMES!"
"hello James!".capitalize #=> "Hello james!"
"hello James!".titleize #=> "Hello James!" (Rails/ActiveSupport only)
Als u een tekenreeks op zijn plaats wilt wijzigen, kunt u een uitroepteken toevoegen aan een van deze methoden:
string = "hello James!"
string.downcase!
string #=> "hello james!"
Raadpleeg de documentatie voor Stringvoor meer informatie.
Antwoord 2, autoriteit 8%
Je kunt alle beschikbare methoden op een String vinden door irb te openen en uit te voeren:
"MyString".methods.sort
En voor een lijst van de beschikbare methoden voor strings in het bijzonder:
"MyString".own_methods.sort
Ik gebruik dit om nieuwe en interessante dingen over objecten te ontdekken waarvan ik anders misschien niet wist dat ze bestonden.
Antwoord 3, autoriteit 2%
Zoals @endeR al zei, als internationalisering een probleem is, is de unicode_utils-edelsteen meer dan voldoende.
$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"
Tekenreeksmanipulaties in Ruby 2.4 zijn nu unicode-gevoelig.
Antwoord 4
De ruby-methode downcase
retourneert een tekenreeks waarvan de hoofdletters zijn vervangen door kleine letters.
"string".downcase
https://ruby-doc.org/ core-2.1.0/String.html#method-i-downcase
Antwoord 5
… en de hoofdletter is:
"Awesome String".upcase
=> "AWESOME STRING"
Antwoord 6
De Rails Active Support-juweeltje biedt upcase
, downcase
, swapcase
,capitalize
, enz. methoden met internationalisering ondersteuning:
gem install activesupport
irb -ractive_support/core_ext/string
"STRING ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
=> "string áâãàçéêíóôõú"
"string áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING ÁÂÃÀÇÉÊÍÓÔÕÚ"
Antwoord 7
De .swapcasemethode zet de hoofdletters in een string om in kleine letters en de kleine letters in hoofdletters.
'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING
Antwoord 8
Je kunt strings-methodes vinden zoals "strings".methods
U kunt tekenreeksen definiëren als capitalize
, downcase
, titleize
.
Bijvoorbeeld,
"hii".downcase
"hii".titleize
"hii".upcase
Antwoord 9
Sinds Ruby 2.4 is er een ingebouwde volledige Unicode-behuizing in kaart brengen. Bron: https://stackoverflow.com/a/38016153/888294. Zie Ruby 2.4.0-documentatie voor details: https:/ /ruby-doc.org/core-2.4.0/String.html#method-i-downcase
Antwoord 10
Werkt niet voor iedereen, maar dit heeft me een hoop tijd bespaard. Ik had net het probleem met een CSV die “TRUE of “FALSE” retourneerde, dus ik heb zojuist VALUE.to_s.downcase == “true” toegevoegd, wat de boolean true zal retourneren als de waarde “TRUE” is en false als de waarde “FALSE” is “, maar werkt nog steeds voor de boolean true en false.
Antwoord 11
In combinatie met de methode try
, ter ondersteuning van de waarde nil
:
'string'.try(:upcase)
'string'.try(:capitalize)
'string'.try(:titleize)