แปลงสตริงเป็นตัวเล็ก

Ruby:
แปลงสตริงเป็นตัวเล็ก

วิธีทำ:

# การใช้เมธอด downcase
my_string = "Hello World!"
puts my_string.downcase  # => "hello world!"
# การใช้ downcase! สำหรับการเปลี่ยนแปลงภายในที่เกิดขึ้น
my_string = "Hello World!"
my_string.downcase!
puts my_string           # => "hello world!"

ดำดิ่งลึก

ตามประวัติศาสตร์, การแปลงตัวพิมพ์เป็นส่วนสำคัญในภาษาโปรแกรมเพื่อให้แน่ใจถึงความเป็นเอกภาพของข้อความ มันรองรับการเปรียบเทียบและการค้นหาที่ไม่คำนึงถึงตัวพิมพ์, ดังนั้นจึงมีความสำคัญ

เมธอด downcase และ downcase! ใน Ruby มาจากหลักการของภาษาที่ให้ทั้งเมธอดทำลายและไม่ทำลายสำหรับการจัดการสตริง เมธอดที่ไม่ทำลาย downcase จะคืนค่าสตริงใหม่ ทิ้งสตริงเดิมไว้, ในขณะที่เมธอดทำลาย downcase! จะแก้ไขสตริงเดิมโดยตรง ซึ่งสามารถประหยัดหน่วยความจำได้มากขึ้น

มีทางเลือกสำหรับกรณีที่กฎระเบียบที่เฉพาะเจาะจงตามท้องถิ่น การใช้ String#mb_chars ร่วมกับ ActiveSupport::Multibyte::Chars#downcase จากไลบรารี Rails ActiveSupport สามารถจัดการกับสถานการณ์ที่ซับซ้อนเช่น ตัวอักษรพร้อมเครื่องหมายวรรคตอนหรือเครื่องหมายอื่น ๆ :

require 'active_support/core_ext/string/multibyte'

my_string = "ÄÖÜ"
puts my_string.mb_chars.downcase  # => "äöü"

สำหรับการดำเนินการ, downcase และ downcase! ของ Ruby ใช้การแมป Unicode เพื่อแปลงแต่ละตัวอักษรของสตริงให้เป็นตัวเลขที่เทียบเท่ากับตัวพิมพ์เล็ก

ดูเพิ่มเติม

  • เอกสารของ Ruby สำหรับ downcase และ downcase!: Ruby Doc downcase, Ruby Doc downcase!
  • สำหรับการแปลงตัวพิมพ์ที่ซับซ้อน, ดูส่วนเสริมของ ActiveSupport Core: ActiveSupport String