Ruby : 문자열의 첫 번째 문자를 얻는 방법
Ruby를 사용하여 문자열의 첫 번째 문자를 얻으려면 어떻게해야합니까?
궁극적으로 내가하는 일은 누군가의 성을 가져 와서 이니셜을 만드는 것입니다.
따라서 문자열이 "Smith"이면 "S"만 원합니다.
Ruby의 개방형 클래스를 사용하여 코드를 훨씬 더 읽기 쉽게 만들 수 있습니다. 예를 들어 다음과 같습니다.
class String
def initial
self[0,1]
end
end
initial
모든 문자열 에서 메서드 를 사용할 수 있습니다 . 따라서 다음 변수가있는 경우 :
last_name = "Smith"
first_name = "John"
그러면 이니셜을 매우 깨끗하고 읽기 쉽게 얻을 수 있습니다.
puts first_name.initial # prints J
puts last_name.initial # prints S
여기에 언급 된 다른 방법은 Ruby 1.8에서 작동하지 않습니다 (어쨌든 1.8을 더 이상 사용해야하는 것은 아닙니다!-그러나이 답변이 게시되었을 때 여전히 매우 일반적이었습니다).
puts 'Smith'[0] # prints 83
물론 정기적으로 수행하지 않는 경우 메서드를 정의하는 것이 과도 할 수 있으며 직접 수행 할 수 있습니다.
puts last_name[0,1]
최신 버전의 Ruby (1.9.0 이상)를 사용하는 경우 다음이 작동합니다.
'Smith'[0] # => 'S'
1.9.0+ 또는 1.8.7을 사용하는 경우 다음이 작동합니다.
'Smith'.chars.first # => 'S'
1.8.7 이전 버전을 사용하는 경우 다음과 같이 작동합니다.
'Smith'.split(//).first # => 'S'
참고 'Smith'[0,1]
않습니다 하지 1.8에서 작동, 그것은 것입니다 하지 그것은 단지 당신에게 첫번째 줄 것이다 당신에게 첫 번째 문자를주고 바이트 .
"Smith"[0..0]
루비 1.8과 루비 1.9 모두에서 작동합니다.
완전성을 위해 Ruby 1.9 String # chr은 문자열의 첫 번째 문자를 반환합니다. 2.0 및 2.1에서 여전히 사용할 수 있습니다.
"Smith".chr #=> "S"
http://ruby-doc.org/core-1.9.3/String.html#method-i-chr
MRI 1.8.7 이상 :
'foobarbaz'.each_char.first
레일스에서
name = 'Smith'
name.first
이 시도:
>> a = "Smith"
>> a[0]
=> "S"
또는
>> "Smith".chr
#=> "S"
>> s = 'Smith'
=> "Smith"
>> s[0]
=> "S"
루비 1.9 이전의 성가신 디자인 선택으로 인해 — 첫 번째 문자 some_string[0]
의 문자 코드 를 반환합니다 . 가장 이식 가능한 방법은이며 some_string[0,1]
, 인덱스 0에서 1 문자 길이의 하위 문자열을 가져 오도록 지시합니다.
아직 언급되지 않은 또 다른 옵션 :
> "Smith".slice(0)
#=> "S"
다음 방법 중 하나가 작동합니다.
name = 'Smith'
puts name.[0..0] # => S
puts name.[0] # => S
puts name.[0,1] # => S
puts name.[0].chr # => S
참고 URL : https://stackoverflow.com/questions/2730854/ruby-how-to-get-the-first-character-of-a-string
'Programming' 카테고리의 다른 글
자바 싱글 톤 및 동기화 (0) | 2020.08.08 |
---|---|
Java에서 뮤텍스와 세마포어는 무엇입니까? (0) | 2020.08.08 |
중첩 된 사전의 값을 가져 오는 Python 안전한 방법 (0) | 2020.08.08 |
MySQL Insert Where 쿼리 (0) | 2020.08.08 |
WKWebView에서 사용할 쿠키를 설정할 수 있습니까? (0) | 2020.08.08 |