簡體   English   中英

如何在Ruby中將字符串轉換為小寫或大寫

[英]How to convert a string to lower or upper case in Ruby

如何在 Ruby 中獲取字符串並將其轉換為小寫或大寫?

Ruby 有一些改變字符串大小寫的方法。 要轉換為小寫,請使用downcase

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

類似地, upcase每個字母capitalize大寫將字符串的第一個字母大寫,而將其余字母小寫:

"hello James!".upcase      #=> "HELLO JAMES!"
"hello James!".capitalize  #=> "Hello james!"
"hello James!".titleize    #=> "Hello James!" (Rails/ActiveSupport only)

如果您想就地修改字符串,您可以為這些方法中的任何一個添加感嘆號:

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

有關詳細信息,請參閱String文檔

您可以通過打開 irb 並運行以下命令來找出 String 上可用的所有方法:

"MyString".methods.sort

尤其是對於字符串可用的方法列表:

"MyString".own_methods.sort

我用它來找出關於我可能不知道存在的對象的新的和有趣的事情。

就像@endeR 提到的,如果國際化是一個問題,unicode_utils gem 就足夠了。

$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"

Ruby 2.4 中的字符串操作現在對 unicode 敏感。

ruby downcase方法返回一個字符串,其中大寫字母替換為小寫字母。

"string".downcase

https://ruby-doc.org/core-2.1.0/String.html#method-i-downcase

...大寫是:

"Awesome String".upcase
=> "AWESOME STRING"

Rails Active Support gem 提供upcasedowncaseswapcasecapitalize等具有國際化支持的方法:

gem install activesupport
irb -ractive_support/core_ext/string
"STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
 => "string  áâãàçéêíóôõú"
"string  áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ"

.swapcase方法將字符串中的大寫字母轉換為小寫字母,將小寫字母轉換為大寫字母。

'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING

您可以找到類似"strings".methods字符串方法。方法您可以將字符串定義為upcasedowncasetitleize 例如,

"hii".downcase
"hii".titleize
"hii".upcase

從 Ruby 2.4 開始,就內置了完整的 Unicode 大小寫映射 來源: https : //stackoverflow.com/a/38016153/888294 有關詳細信息,請參閱 Ruby 2.4.0 文檔: https : //ruby-doc.org/core-2.4.0/String.html#method-i-downcase

Ruby語言為字符串大小寫相關操作提供了不同的內置方法。

例如

string = "Ruby on rails"

# For upper case 
puts string.upcase 
=> "RUBY ON RAILS"

# For lower case 
puts string.downcase
=> "ruby on rails"

但這不會改變原始變量。

puts string
=> "Ruby on rails"

如果您想要更改原始變量,請使用以下內容:

string =“Ruby on rails”

# For upper case 
string.upcase!
puts string  
=> "RUBY ON RAILS"

# For lower case 
string.downcase!
puts string
=> "ruby on rails"

不會對每個人都有效,但這只是為我節省了大量時間。 我剛剛遇到了返回“TRUE”或“FALSE”的 CSV 的問題,所以我剛剛添加了 VALUE.to_s.downcase ==“true”,如果值為“TRUE”,它將返回布爾值 true,如果值為“FALSE”則返回 false ",但仍適用於布爾值 true 和 false。

結合try方法,支持nil值:

'string'.try(:upcase)
'string'.try(:capitalize)
'string'.try(:titleize)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM