def letter_case_count(string)
char = new Hash
char[:lower] = 0
char[:upper] = 0
char[:neither] = 0
string.split("").each do |x|
if ('A'..'Z').include?(x)
char[:upper]++
elsif ('a'..'z').include?(x)
char[:lower]++
else
char[:neither]++
end
end
end
puts letter_case_count('abCdef 123') == { lowercase: 5, uppercase: 1, neither: 4 }
puts letter_case_count('AbCd +Ef') == { lowercase: 3, uppercase: 3, neither: 2 }
puts letter_case_count('123') == { lowercase: 0, uppercase: 0, neither: 3 }
puts letter_case_count('') == { lowercase: 0, uppercase: 0, neither: 0 }
我收到此錯誤。我收到「elsif」的意外關鍵字錯誤
(repl):9: syntax error, unexpected keyword_elsif
elsif ('a'..'z').include?(x)
^
(repl):11: syntax error, unexpected keyword_else
(repl):13: syntax error, unexpected keyword_end
(repl):20: syntax error, unexpected end-of-input, expecting keyword_end
...: 0, uppercase: 0, neither: 0 }
...
^
有一堆意外的關鍵字和意外的輸入結束。不知道爲什麼,我幾乎沒有用Ruby進行編程,我也看不出問題所在。
「短」不一定是「好」。您爲每次計數掃描一次字符串。 – Stefan
是不是比生成兩個範圍'('A'..'Z')'和'('a'..'z')'更好,然後檢查是否包含?並且對於每個字符串。 –
你也可以這樣使用'count':'str.count(「az」)''''str.count(「AZ」)'''str.count(「1-9」)等。 –