前提・実現したいこと
人の苗字が3文字だった場合のみに条件分岐をさせたいと思っています。
length
メソッドで判定させようとしているのですが、
分岐がうまくいかず、
putsでログを見てみると、判定が全て「1」文字となっていました。
CSVから苗字データを引っ張っているのですが、
そこがうまくいかない原因でしょうか??
該当のソースコード
ruby
1require "csv" 2 3keywords = [] 4 5CSV.foreach("keywords.csv") do |keyword| 6 keywords << keyword 7end 8 9 10keywords.each do |keyword| 11 if keyword.length == 3 12 puts "苗字は3文字です" 13 else 14 puts "苗字は3文字ではありません" 15 end 16end 17
試したこと
ベタ書きで"五十嵐".length == 3
とするとうまく判定するのですが、
eachの変数を使用すると全ての苗字が(田中、鈴木)1と判定されてしまいます。
原因わかるかたいたら教えていただきたく!
###CSVの中身
/ | A | B |
---|---|---|
1 | 田中 | |
2 | 鈴木 | |
3 | 五十嵐 | |
4 | よんもじ | |
5 | ごごごごご | |
6 | 津 |
上記のような感じのCSVにしています。
テスト用に適当な苗字を入れたものです。
A4〜6は今扱っているデータの中にない文字数を擬似的に入れているものです。
回答2件
あなたの回答
tips
プレビュー