我的目標是讀取txt.file,並將內容分割成數組。然而,我對split命令有問題。紅寶石分割問題
我的文本文件,內容是這樣的
阿科斯塔,1,3,0,0,0
Amezcua,2,1,2,0,2
阿瓦洛斯,0,1,1, 0,0
我的代碼是這樣的
file = open("score2.txt", "r")
file.each do |line|
array = line.split(",")
print array
end
但是我PowerShell會返回這個
["Acosta", "1", "3", "0", "0", "0\n"]["Amezcua", "2", "1", "2", "0", "2\n"]["Avalos", "0", "1", "1", "0", "0\n"]["\n"]
我對我從powershell輸出中得到的東西感到困惑。首先我的txt只包含三行,爲什麼powershell打印出4個數組而不是3個?其次,爲什麼每個最後一個數組的元素包含\ n,我不希望這樣。第三,如果我用put替換print,那麼對於數組的每個最後一個元素,我都不會有\ n的問題;爲什麼?
爲了補充,我將解釋爲什麼我想從數組的最後一個元素中移除\ n的原因。 txt文檔中的數字表示將某個人放入比賽中, Acosta,1,3,0,0,0意味着Acosta在第一場比賽中獲得第一名,在第二場比賽中獲得第三名,並且在剩下的比賽中沒有進球。因此,我想根據每個人的得分情況來分配一個積分系統,並最終打印出每個人的總得分。
因此,我使用的ifelsif序列來分配分數作爲遵循
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
然而,由於在陣列中的最後一個元素\ N,我無法點分配給比賽的最後一場比賽。因此我想從數組的最後一個元素中刪除\ n。
這個練習是從http://www.evc-cit.info/cit020/beginning-programming/chp_05/exercises2.html。
有人能夠賜教嗎?謝謝
嗨如何刪除從數組的最後一個元素\ n嗎? – roppo
嗨:)我更新了我的回答 –
嗨,我想我不清楚我的問題,你能不能好好讀我的qns agn? – roppo