루비에서 문자열을 소문자 또는 대문자로 변환하는 방법


답변:


1590

루비에는 문자열의 대소 문자를 변경하는 몇 가지 방법이 있습니다. 소문자로 변환하려면 다음을 사용하십시오 downcase.

"hello James!".downcase    #=> "hello james!"

마찬가지로, upcase모든 문자를 capitalize대문자로하고 문자열의 첫 번째 문자를 대문자로하지만 나머지는 소문자로 만듭니다.

"hello James!".upcase      #=> "HELLO JAMES!"
"hello James!".capitalize  #=> "Hello james!"
"hello James!".titleize    #=> "Hello James!"

문자열을 제자리에서 수정하려면 해당 방법에 느낌표를 추가하면됩니다.

string = "hello James!"
string.downcase!
string   #=> "hello james!"

자세한 내용 은 String 설명서를 참조하십시오 .


2
대답 한 후에 만 ​​생각했지만 어쨌든 대답 할 시간을 내주신 분에게 당신을 알려줄 것입니다. 감사!
Heat Miser

3
조심해! 강타 "!"를 사용하는 것처럼 보입니다. 대문자가 없으면 nil을 반환합니다. 그래서 str = "this".downcase! STR = nil을 반환
Phil_Ken_Sebben

12
종종 "뱅 (bang) 메소드"가 리턴됩니다 nil. 다른 변수에 값을 저장하려는 경우가 아니라 제자리에서 객체를 변경하려는 경우이를 사용해야합니다.
Sophie Alpert

6
.titleizeRails에서 왔습니다. 루비 String문서 에서 찾을 수 없음
ronald8192

3
titleize이 답변에서 제거하거나 최소한 Rails 방법이라고 명시해야합니다.
Sagar Pandya

122

irb를 열고 다음을 실행하여 문자열에서 사용 가능한 모든 메소드를 찾을 수 있습니다.

"MyString".methods.sort

그리고 특히 문자열에 사용 가능한 메소드 목록 :

"MyString".own_methods.sort

나는 이것을 사용하여 내가 알지 못했을 수도있는 객체에 관한 새롭고 흥미로운 것들을 발견합니다.


12
이 답변의 유일한 문제는 #own_methods가 존재하지 않는 것입니다. Irb 확장에서 온 것입니까?
Mark Wilden

12
안녕하세요. #own_methods로 새로운 것을 배우고 있다고 생각했지만 나에게도 존재하지 않습니다. 그러나 나는 보통 다음과 같이한다 : ( "MyString".methods-Object.merhods) .sort
oceanician

2
@fakeleft 패치와 매우 유사하며 .irbrc 파일에 있습니다. 나는 원숭이 패치 개체가이와 #own_methds을 만들고 : (obj.methods - obj.class.superclass.instance_methods) .sort
mlambie

1
@Laser String의 메소드는 특히 String 클래스 자체에 정의 된 메소드입니다. String에서 사용 가능한 메소드에는 수퍼 클래스에 정의 된 메소드가 포함됩니다.
기금 모니카의 소송

1
String.public_instance_methods(false)의해 특별히 정의 된 모든 퍼블릭 인스턴스 메소드를 찾는 데 사용하십시오 String.
3limin4t0r

39

@endeR에서 언급했듯이 국제화가 우려된다면 unicode_utils gem이 충분합니다.

$ gem install unicode_utils
$ irb
> require 'unicode_utils'
=> true
> UnicodeUtils.downcase("FEN BİLİMLERİ", :tr)
=> "fen bilimleri"

Ruby 2.4의 문자열 조작은 이제 유니 코드에 민감합니다.



12

... 대문자는 다음과 같습니다.

"Awesome String".upcase
=> "AWESOME STRING"

12

레일즈 활동 지원 보석 제공 upcase, downcase, swapcase, capitalize, 등 국제화 지원 방법 :

gem install activesupport
irb -ractive_support/core_ext/string
"STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ".mb_chars.downcase.to_s
 => "string  áâãàçéêíóôõú"
"string  áâãàçéêíóôõú".mb_chars.upcase.to_s
=> "STRING  ÁÂÃÀÇÉÊÍÓÔÕÚ"

1

같은 당신은 문자열 방법을 찾을 수 있습니다 "strings".methods 당신은 같은 문자열을 정의 할 수 있습니다 upcase, downcase, titleize. 예를 들어

"hii".downcase
"hii".titleize
"hii".upcase

1

.swapcase 문자열 latters 대문자 소문자로 변환 방법 및 소문자가 대문자로.

'TESTING'.swapcase #=> testing
'testing'.swapcase #=> TESTING

1
감사! 이것이 바로 내가 찾던 것입니다. 대소 문자를 혼합 한 문자열을 사용하면이 방법의 기능을보다 명확하게 이해할 수 있습니다.'Testing'.swapcase #=> tESTING
Matthew


0

모든 것이 작동하지는 않지만 많은 시간을 절약했습니다. 방금 CSV에 "TRUE 또는"FALSE "를 반환하는 데 문제가 있으므로 VALUE.to_s.downcase =="true "를 추가하여 값이"TRUE "이면 부울 true를 반환하고 값이"FALSE이면 false를 반환합니다. "이지만 부울 true 및 false에 대해서는 여전히 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.