1

私の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
4

2 に答える 2

3

両方の文字列の末尾に改行 '\n' があります。したがって、あなたの分割は次のものを受け取ります。

"265651,YAAR\n"
"265654","YAARS\n"
于 2013-02-28T01:07:42.460 に答える
3

ファイルから読み取ると、すべての行の最後に改行文字 (\n) が表示されます (最後の行を除く)。

それ以外の

word = s.split(',')

あなたのループで、これを使用してください

word = s.split(',').map { |s| s.chomp }
于 2013-02-28T01:13:01.177 に答える