我试图从文件中输入文本,忽略第一行,并将每个字符添加到单独索引[[],[]]的2D数组中。到目前为止,我可以将字符添加到自己的索引中,但不能使用.chomp等删除换行符。
我希望我的最终结果是
[['*','.','.','.']","['.','.','*','.']","['.','.','.','.']]
例如,[0][0]
将返回*
,[0]
将返回*...
现在我回来了
[['*','.','.','.',"\n"]","['.','.','*','.',"\n"]","['.','.','.','.',"\n"]]
有问题的代码是:
def load_board(file)
board = File.readlines(file)[1..-1].map do |line|
line.split("").map(&:to_s)
end
end
origin_board = load_board('mines.txt')
print origin_board
如果我尝试以下代码:
def load_board(file)
board = File.readlines(file)[1..-1].map do |line|
line.split.map(&:to_s)
end
end
origin_board = load_board('mines.txt')
print origin_board
我最终得到了一个2D数组,如:
[["*..."],["..*."],["...."]]
答案 0 :(得分:0)
剥离您的输入应该有所帮助:
def load_board(file)
board = File.readlines(file)[1..-1].map do |line|
# ⇓⇓⇓⇓⇓
line.strip.split("").map(&:to_s)
end
end
String#strip
将从字符串中删除前导尾随空格。另一个选项是不使用readlines
支持read
和split
$/
(行分隔符):
def load_board(file)
board = File.read(file).split($/)[1..-1].map do |line|
line.split("").map(&:to_s)
end
end
答案 1 :(得分:0)
您可以在.split之前添加.chomp,如下所示:
def load_board(file)
board = File.readlines(file)[1..-1].map do |line|
line.chomp.split("").map(&:to_s)
end
end
没有完全测试它,但做了一些摆弄,它应该工作http://repl.it/hgJ/1。