programing

루비는 모든 단어의 첫 글자를 대문자로 표시합니다.

javamemo 2023. 6. 4. 10:13
반응형

루비는 모든 단어의 첫 글자를 대문자로 표시합니다.

모든 단어의 첫 번째 문자는 대문자로 만들고 나머지는 소문자로 만들어야 합니다.

manufacturer.MFA_BRAND.first.upcase

첫 번째 문자를 대문자로 설정하는 것뿐이지만 필요한 것은 다음과 같습니다.

ALFA ROMEO => Alfa Romeo
AUDI => Audi
BMW => Bmw
ONETWO THREE FOUR => Onetwo Three Four

레일 내:

"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

w/o Rails(Rails의 Active Support를 패치에 로드 #titleiz 방법:String)

require 'active_support/core_ext'
"kirk douglas".titleize #=> "Kirk Douglas"

(일부) #intervalize에서 처리한 문자열 사용 사례

  • "더글러스"
  • "dll_model_model_model
  • "1987-1987"
  • 커크 더글러스"
  • 커크 더글러스

#가짜를 속입니다.

레일즈titleize에서는 대시 및 밑줄과 같은 항목을 공백으로 변환하고, 특히 @James McMahon이 지적한 대/소문자를 구분하는 상황에서 다른 예기치 않은 결과를 생성할 수 있습니다.

"hEy lOok".titleize #=> "H Ey Lo Ok"

이는 다음과 같은 낙타 케이스 코드를 처리하기 위한 것이기 때문입니다.

"kirkDouglas".titleize #=> "Kirk Douglas"

이 엣지 케이스를 처리하기 위해 당신은 당신의 끈을 닦을 수 있습니다.#downcase#interestize를 실행하기 전에 먼저 입력합니다.물론 그렇게 하면 낙타 대문자로 구분된 단어를 모두 삭제할 수 있습니다.

"kirkDouglas".downcase.titleize #=> "Kirkdouglas"

사용해 보십시오.

puts 'one TWO three foUR'.split.map(&:capitalize).join(' ')

#=> One Two Three Four

또는

puts 'one TWO three foUR'.split.map(&:capitalize)*' '

"hello world".titleize"Hello World"를 출력해야 합니다.

또 다른 옵션은 정규식과 gsub을 사용하는 것이며, 이는 블록을 사용합니다.

'one TWO three foUR'.gsub(/\w+/, &:capitalize)
"hello world".split.each{|i| i.capitalize!}.join(' ')

String# 대문자화 방법을 확인합니다.

http://www.ruby-doc.org/core-1.9.3/String.html#method-i-capitalize

배열에서 각 단어의 첫 글자를 대문자로 표시하려는 경우 다음과 같이 간단히 입력할 수 있습니다.

array_name.map(&: 대문자로 표시)

비슷한 문제에 사용했습니다.

'catherine mc-nulty joséphina'.capitalize.gsub(/(\s+\w)/) { |stuff| stuff.upcase }

이것은 이전 답변을 시도하는 것을 본 다음과 같은 이상한 경우를 처리합니다.

  • 단어가 아닌 문자(예: -)
  • 에와 같은 이름에 흔히 있는 악센트가 있는 문자들
  • 문자열 중간에 있는 대문자

언급URL : https://stackoverflow.com/questions/13520162/ruby-capitalize-every-word-first-letter

반응형