Een tekenreeks converteren naar kleine letters of hoofdletters in Ruby

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 downcaseom naar kleine letters te converteren:

"hello James!".downcase    #=> "hello james!"

Evenzo geeft upcaseelke letter een hoofdletter en capitalizeeen 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 downcaseretourneert 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)

Other episodes