2012-03-05 3 views
0

저는 루비에 익숙하지 않으며 개발 도구에 익숙해 져 있습니다. 나는 irb를 사용하고 있으며, 첫 번째 helloword를 실행했습니다. 또한 cmd 프롬프트를 사용하여 동일한 작업을 수행했습니다. 나는 오류가 주에 대한 정의되지 않은 메서드`GSUB를 '반환 유지내 첫 번째 루비 테스트 코드에 문제가 있습니다.

def palindrome2?(string) 
    puts "hello" 
    regex = /^[a-zA-Z]/ 
    string = gsub(regex,'').downcase 
    mirror = string.reverse 
    reformat == mirror 
end 

를 반환 유지 다음과 같은 기능을 가지고 : 나는 당신의 경우이

+3

'string' 매개 변수에'gsub'를 호출하십시오 :'string.gsub'. 대신 메인 객체 (루비의 최상위 객체)에서 호출합니다. –

+0

감사합니다. 지금 작업 중입니다. – nnanna

+0

@Alex Kliuchnikau는 의심 할 여지없이 "매개 변수"가 아니라 "개체"라고 말합니다. – steenslag

답변

0

를 해결 할 error.How 개체는 GSUB를 호출하는 것을 잊었다 변경이 이루어지지 않은 경우

문자열 회문이

class String 
def palindrome? 
    self.downcase == reverse.downcase 
end 
end 

"baB".palindrome? #=> true 
0

또한, 문자열 반환에 GSUB 방법은 nil을 문자열에 대한 방법. 예를 들어 "fijowejg", "filsijdf".gsub (/ [^ a-zA-Z] /, '')와 같이 단어가없는 단어가없는 문자열은 nil을 반환합니다. 그런 다음 downcase 메서드는 nil 객체에서 실행할 수 없습니다.

따라서 gsub 및 downcase 메서드를이 순서로 연결할 수 없습니다. http://ruby-doc.org/core-1.9.3/String.html#method-i-gsub

관련 문제