为什么我的foo()
函数将字符串“YAAR”打印为长度为5?
def foo()
map = Hash.new
File.open('dictionary.txt').each_line{ |s|
word = s.split(',')
if word.any? { |b| b.include?('AA') }
puts word.last
puts word.last.length
end
}
end
someFile.txt
265651,YAAR
265654,YAARS
输出
YAAR
5
YAARS
6
答案 0 :(得分:3)
你在两个字符串的末尾都有一个换行符'\ n'。所以,你的分裂正在接受:
"265651,YAAR\n"
"265654","YAARS\n"
答案 1 :(得分:3)
从文件中读取你会在所有行的末尾获得一个新行char(\ n)(除了最后一行)
而不是
word = s.split(',')
在循环中,使用此
word = s.split(',').map { |s| s.chomp }