Bagaimana cara mengambil string dan mengubahnya menjadi huruf besar atau kecil di Ruby?
Bagaimana cara mengambil string dan mengubahnya menjadi huruf besar atau kecil di Ruby?
Jawaban:
Ruby memiliki beberapa metode untuk mengubah kasus string. Untuk mengonversi menjadi huruf kecil, gunakan downcase
:
"hello James!".downcase #=> "hello james!"
Demikian pula, upcase
kapitalisasi setiap huruf dan capitalize
kapitalisasi huruf pertama dari string tetapi turunkan sisanya:
"hello James!".upcase #=> "HELLO JAMES!"
"hello James!".capitalize #=> "Hello james!"
"hello James!".titleize #=> "Hello James!"
Jika Anda ingin memodifikasi string di tempat, Anda dapat menambahkan tanda seru ke salah satu metode tersebut:
string = "hello James!"
string.downcase!
string #=> "hello james!"
Lihat dokumentasi untuk String untuk informasi lebih lanjut.
nil
; Anda harus menggunakannya jika Anda ingin mengubah objek di tempat, bukan jika Anda ingin menyimpan nilai dalam variabel lain.
.titleize
berasal dari Rails. Tidak dapat menemukannya di String
dokumentasi ruby
titleize
perlu dihapus dari jawaban ini atau setidaknya menyatakan itu adalah metode Rails.
Anda dapat mengetahui semua metode yang tersedia pada sebuah String dengan membuka irb dan menjalankan:
"MyString".methods.sort
Dan untuk daftar metode yang tersedia untuk string khususnya:
"MyString".own_methods.sort
Saya menggunakan ini untuk mencari tahu hal-hal baru dan menarik tentang objek yang mungkin tidak saya ketahui ada.
String.public_instance_methods(false)
untuk menemukan semua metode instance publik yang ditentukan secara khusus oleh String
.
Seperti @endeR disebutkan, jika internasionalisasi menjadi perhatian, permata unicode_utils lebih dari cukup.
$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"
Manipulasi string di Ruby 2.4 sekarang unicode-sensitive.
downcase
Metode ruby mengembalikan string dengan huruf besar diganti dengan huruf kecil.
"string".downcase
https://ruby-doc.org/core-2.1.0/String.html#method-i-downcase
Rel Active Support permata menyediakan upcase
, downcase
, swapcase
, capitalize
, dll metode dengan dukungan internasionalisasi:
gem install activesupport
irb -ractive_support/core_ext/string
"STRING ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
=> "string áâãàçéêíóôõú"
"string áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING ÁÂÃÀÇÉÊÍÓÔÕÚ"
Anda dapat menemukan metode string seperti "strings".methods
Anda dapat menentukan string sebagai upcase
, downcase
, titleize
. Sebagai contoh,
"hii".downcase
"hii".titleize
"hii".upcase
The .swapcase metode transformasi latters huruf besar dalam sebuah string ke huruf kecil dan huruf kecil ke huruf besar.
'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING
'Testing'.swapcase #=> tESTING
Sejak Ruby 2.4 ada pemetaan case Unicode penuh bawaan . Sumber: https://stackoverflow.com/a/38016153/888294 . Lihat dokumentasi Ruby 2.4.0 untuk detail: https://ruby-doc.org/core-2.4.0/String.html#method-i-downcase
Tidak akan berhasil untuk setiap orang, tetapi ini hanya menghemat banyak waktu. Saya baru saja mengalami masalah dengan CSV yang mengembalikan "TRUE atau" FALSE "jadi saya hanya menambahkan VALUE.to_s.downcase ==" true "yang akan mengembalikan boolean true jika nilainya" TRUE "dan false jika nilainya" FALSE " ", tetapi masih akan bekerja untuk boolean benar dan salah.