2012-12-10 52 views
0

下面的程序需要兩個輸入(逗號隔開)從用戶:以輸入從用戶在控制檯中紅寶石

puts "Enter the code" 
input_codes = gets.split(',') 
puts "your given code is: " 

code_1 = input_codes[0] 
code_2 = input_codes[1] 

puts code_1=='GEO' 
puts code_2=='TYP' 

輸出如下:

Enter the code 
> GEO,TYP 

true 
false 

它應該打印true兩個的情況下,對嗎?爲什麼在最後一種情況下打印false?我錯過了什麼?

編輯:是的,有一個額外的換行符,我在開始時失蹤。在tadman的幫助下解決了這個問題。是的,檢查從那時起,事情就變得非常有用了!

回答

3

你可能在你輸入的新行你沒有剝離。處理來自文件的數據時,請務必輸入chomp的任何輸入值。更好的是撥打strip,這將刪除前導和尾隨空格。

gets.chomp.split(',') 

每當試圖做診斷,它顯示「看不見」的角色是非常重要的:

puts code_2.inspect 
# "TYP\n" 

這很可能已經暴露了問題越早。儘管如此,inspect可能會引起誤解,因爲這些自定義類有自己的自定義發射器。它不總是值得信賴的,但它通常是一個開始的好地方。

2

你必須在字符串的結尾換行符,只要剝去它:

input_codes = gets.strip.split(',')