การทำให้ตัวอักษรแรกเป็นตัวพิมพ์ใหญ่ในสตริง

Ruby:
การทำให้ตัวอักษรแรกเป็นตัวพิมพ์ใหญ่ในสตริง

วิธีทำ:

Ruby มีวิธีการจัดการสตริงที่ตรงไปตรงมา, รวมถึงการทำให้เป็นตัวพิมพ์ใหญ่:

# วิธีการภายในของ Ruby
string = "hello WORLD"
capitalized_string = string.capitalize
puts capitalized_string # => "Hello world"

ประโยชน์มาก

วิธีการ .capitalize ของ Ruby สะดวกแต่มันทำให้ตัวอักษรแรกเป็นตัวพิมพ์ใหญ่เท่านั้น ถ้าต้องการควบคุมมากขึ้นหรือทำให้แต่ละคำในสตริงเป็นตัวพิมพ์ใหญ่ (ที่รู้จักว่า case ชื่อเรื่อง), คุณอาจต้องการใช้วิธีการ titleize จาก ส่วนขยาย ActiveSupport ของ Rails, หรือทำมันเอง:

# ใช้ 'titleize' จาก ActiveSupport ใน Rails
require 'active_support/core_ext/string/inflections'
string = "hello world"
puts string.titleize # => "Hello World"
# สร้างเอง
string = "hello world"
capitalized_each_word = string.split.map(&:capitalize).join(' ')
puts capitalized_each_word # => "Hello World"

วิธีนี้แยกสตริงออกเป็นอาร์เรย์ของคำ, ทำให้แต่ละคำเป็นตัวพิมพ์ใหญ่, จากนั้นรวมกลับเข้าด้วยกันด้วยช่องว่าง

ส่วนตัว, ฉันนำความคิดนี้ไปใช้ในโค้ดของฉันไกลมากกว่านี้ ฉันเขียน วิธีการ titleize ของตัวเองที่คำนึงถึงคำเล็ก ๆ อย่าง “a” และ “the”.