Ruby의 문자열에서 문자 # 개 찾기


103

문자열에서 문자의 발생 횟수를 찾는 데 도움이 될 수있는 Ruby 메서드 (1.9 ...)를 찾고 있습니다. 첫 번째뿐만 아니라 모든 발생을 찾고 있습니다.

예 : "Melanie is a noob"문자 'a'가 두 번 나타납니다. 이것을 찾기 위해 사용할 수있는 Ruby 방법은 무엇입니까?

Ruby-doc.org 를 참조 로 사용 하고 있으며 그 scan방법이 String: class눈 에 띄었 습니다. 표현이 조금 이해하기 어렵 기 때문에의 개념을 실제로 이해하지 못합니다 scan.

편집 : 나는 이것을 사용하여 해결할 수 있었다 scan. 나는 그것을 어떻게 달성했는지 비디오에서 공유 했습니다.


2
발생 수 또는 문자열에서 발생의 인덱스 값을 원하십니까? 얼마나 많은지를 아는 것이 종종 유용하지만 일반적으로 다음 질문은 "그들은 어디에 있습니까?"입니다.
The Tin Man

답변:


142

a의 수만 원하는 경우 :

puts "Melanie is a noob".count('a')  #=> 2

자세한 내용은 문서 를 참조하세요.


18
나는 당신이 질문에서 문자열을 취했다는 것을 알 때 까지이 대답을 정말 좋아했습니다. :-) 그래도 +1.
Hubro

점과 함께 작동하지 않는 이유는 무엇입니까? 예 "voyage.localhost.com".count ( 'www.') => 2. 이것이 어떻게 될 수 있습니까?
Gediminas 2014

12
@Gediminas count는 문자열이 아닌 문자를 계산합니다. "voyage.localhost.com".count ( 'www.')는 "voyage.localhost.com".count ( 'w.')와 동일하며 w와 두 개의 점이 없기 때문에 결과는 2입니다.
steenslag

2

2
처음에는이 답변에 매우 충격을 받았지만 Melanie가 먼저 예제를 사용한 것을 보았습니다. 좋은 대답입니다!
AJFaraday


1

scan다른 답변에서 볼 수 있듯이 문자열을 전달하여 이것을 해결할 수있었습니다 .

예를 들면 :

string = 'This is an example'
puts string.count('e')

출력 :

2

또한 스캔을 사용하고 다른 답변과 약간 다른 정규식 대신 스팅을 전달하여 발생을 가져올 수 있었지만 정규식을 피하기 위해 도움이되었습니다.

string = 'This is an example'
puts string.scan('e')

출력 :

['e','e']

이 방법을 알아 낸 후 만든 작은 비디오 가이드 에서 더 자세히 살펴 보았습니다 .

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