2014-07-15 1 views
4

그래서 palindrome 프로그램을 만들기로 결심했으나 사용자가 입력 한 문자열을 검사하여 결정했습니다. 이 작업을 올바르게 수행하기 위해 대문자, 공백 및 구두점을 제거하려고했습니다. 나는 그럭저럭 모든 것을 알아들을 수 있었다. 그러나 그것의 구두점 부분은 움직이게했다. "Madam, I 'm Adam"과 같은 문자열을 시도 할 때마다 프로그램이 중단됩니다. Ruby를 처음 접했을 때 나는 Codecademy 웹 사이트를 통해서만 지식을 습득했습니다. 또한 제공된 코드를 실행하기 위해 제공된 편집기를 사용합니다. 때마다 나는 그것을 실행 :내 Palindrome 프로그램의 문제점은 무엇입니까? (Ruby, 사용자가 직접 문자열을 입력합니다.)

puts "Enter a string!" 
user_input = gets.chomp 
user_input.downcase! 
user_input = user_input.gsub(/[^0-9a-z ]/i, '') 
if user_input.include?(" ") 
    user_input.gsub!(/ /, "") 
end 
if user_input == user_input.reverse 
    print "Is a pallindrome" 
else 
    print "Is not a pallindrome" 
end 

그것은 충돌합니다. 그러나 만약 내가 그것을 실행하면 :

puts "Enter a string!" 
user_input = gets.chomp 
user_input.downcase! 
if user_input.include?(" ") 
    user_input.gsub!(/ /, "") 
end 
if user_input == user_input.reverse 
    print "Is a pallindrome" 
else 
    print "Is not a pallindrome" 
end 

그것은 작동합니다. 여기서 내가 뭘 잘못하고 있니? 구두점을 제거하려고 할 때 내 프로그램이 항상 중단되는 이유는 무엇입니까?

+0

어떤 예외가 발생합니까? –

+0

... 어떤 문자열을 입력 했습니까? 예외가 발생한 줄은 무엇입니까? –

+0

다음은 Ruby에서 문장 검색을 확인하는 몇 가지 다른 방법입니다. http://stackoverflow.com/questions/8462512/ruby-way-to-check-for-string-palindrome – Powers

답변

3

프로그램에 문제가 없습니다.

gets 

그냥 충돌 볼 '를 입력 ...

내 조언을 얻을 수 있습니다 : Codecademy에서이

그것을 밖으로 시도 ... 거기에 견적을 가지고 모든 입력을 읽는 버그가 루비로 개발할 자신의 지역 환경. 어떤 OS에서도 간단한 루비 환경을 설치할 수 있도록 많은 리소스가 있습니다.

그런 다음 숭고한 텍스트을 다운로드하여 설치하고 루비 소스 파일을 만들기 시작하십시오. 그러면 ruby <your_file>.rb이 예상대로 완벽하게 작동한다는 것을 알 수 있습니다.