私の目的は、txt.fileを読み込み、内容を配列に分割することです。しかし私はsplitコマンドに問題があります。ruby splitの問題
私のテキストファイルの内容は、この
アコスタ、1,3,0,0,0
Amezcua、2,1,2,0,2
アバロス、0,1,1であります0,0
私のPowerShellは、この
を返すしかし私のコードは、このfile = open("score2.txt", "r")
file.each do |line|
array = line.split(",")
print array
end
です
["Acosta", "1", "3", "0", "0", "0\n"]["Amezcua", "2", "1", "2", "0", "2\n"]["Avalos", "0", "1", "1", "0", "0\n"]["\n"]
私はPowerShellの出力から得られるものと混同しています。まず、私のtxtには3行だけが含まれています。なぜpowershellが3の代わりに4つの配列を出力するのですか?第二に、なぜ最後のすべての配列の要素には\ nが含まれていますが、私はそれを望んでいません。第3にprintをputsに置き換えた場合、配列の最後の要素には\ nという問題はありません。どうしてこんなことに?
追加するには、配列の最後の要素から\ nを削除する理由を説明します。 txt文書内の数字は、トーナメントにおける個人の配置を表し、例えば、アコスタ、1,3,0,0,0は、アコスタが最初の試合で最初に配置され、2番目の試合で3番目、残りの試合に配置されないことを意味します。それで、私は各個人をスコアリングし、最終的に各人の合計スコアを印刷することに基づいてポイントシステムを割り当てたいと思います。
。したがってI起因\ nに配列の最後の要素でしかし
file = open("score2.txt", "r")
file.each do |line|
array = line.split(",")
name = array.shift
score = 0
array.each do |placing|
if placing == "1"
score += 6
elsif placing == "2"
score += 4
elsif placing == "3"
score += 2
else
score = score
end
end
print "#{name}: #{score} "
end
に従うようにスコアを割り当てるifelsif配列を使用する、私はトーナメントの最後のマッチにポイントを割り当てることができません。したがって、配列の最後の要素から\ nを削除します。
この練習問題はhttp://www.evc-cit.info/cit020/beginning-programming/chp_05/exercises2.htmlです。
親切に私を啓発することはできますか?ありがとうございます
こんにちはどのように私は、配列の最後の要素から\ nを削除しますか? – roppo
こんにちは私は私の答えを更新しました –
こんにちは、私は私の質問では不明であると思う、あなたは親切に私のqnsのAGNを読むことができる? – roppo