[ruby] 루비는 모든 단어 첫 글자를 대문자로
모든 단어의 첫 문자를 대문자로하고 나머지는 소문자로 만들어야합니다 …
manufacturer.MFA_BRAND.first.upcase
첫 글자를 대문자로만 설정하고 있지만 다음이 필요합니다.
ALFA ROMEO => Alfa Romeo
AUDI => Audi
BMW => Bmw
ONETWO THREE FOUR => Onetwo Three Four
답변
이 시도:
puts 'one TWO three foUR'.split.map(&:capitalize).join(' ')
#=> One Two Three Four
또는
puts 'one TWO three foUR'.split.map(&:capitalize)*' '
답변
레일에서 :
"kirk douglas".titleize => "Kirk Douglas"
#this also works for 'kirk_douglas'
레일없이 :
"kirk douglas".split(/ |\_/).map(&:capitalize).join(" ")
#OBJECT IT OUT
def titleize(str)
str.split(/ |\_/).map(&:capitalize).join(" ")
end
#OR MONKEY PATCH IT
class String
def titleize
self.split(/ |\_/).map(&:capitalize).join(" ")
end
end
Rails 없음 (#titleize 메소드를 패치하기 위해 Rails의 ActiveSupport로드 String
)
require 'active_support/core_ext'
"kirk douglas".titleize #=> "Kirk Douglas"
#titleize가 처리하는 (일부) 문자열 사용 사례
- “커크 더글러스”
- “kirk_douglas”
- “커크 두 글라스”
- “커크 더글라스”
- “커크 더글라스”
#titleize gotchas
Rails titleize
는 대시 및 밑줄과 같은 것을 공백으로 변환하고 특히 @JamesMcMahon이 지적한 대소 문자 구분 상황에서 예기치 않은 다른 결과를 생성 할 수 있습니다.
"hEy lOok".titleize #=> "H Ey Lo Ok"
다음과 같은 낙타 케이스 코드를 처리하기 때문입니다.
"kirkDouglas".titleize #=> "Kirk Douglas"
이 경우를 처리하기 위해 #downcase
#titleize를 실행하기 전에 먼저 문자열을 정리할 수 있습니다 . 물론 그렇게한다면 낙타에서 분리 된 단어를 지우 게됩니다 :
"kirkDouglas".downcase.titleize #=> "Kirkdouglas"
답변
"hello world".titleize
“Hello World”를 출력해야합니다.
답변
또 다른 옵션은 정규 표현식과 gsub를 사용하는 것입니다.
'one TWO three foUR'.gsub(/\w+/, &:capitalize)
답변
String # capitalize 메소드를 살펴보십시오.
http://www.ruby-doc.org/core-1.9.3/String.html#method-i-capitalize
답변
"hello world".split.each{|i| i.capitalize!}.join(' ')
답변
배열에서 각 단어의 첫 글자를 대문자로 사용하려는 경우 간단히 다음을 입력하십시오.
array_name.map (& : 자본)