1

我刚刚开始使用 Ruby,我的第一个程序从一个 txt 文件中读取,并将每一行的修改版本打印到另一行。这个想法是得到这个:

- Book Title *Book Author*

对此:

  Book Title     Book Author

我的代码如下所示:

listold = File.open('listas.txt', 'r+')
listnew = File.new('lista.txt', 'w+')
listold.each_line {|line|
  nome, autor = line.split(' *')
  nome['- '] = '  '
  autor = autor.chomp('*')
  listnew.puts nome << "\t" << autor
}

我遇到的问题是它仅适用于文件中的最后一行。对于其他的,\t间距非常小,最后一个 * 没有被削减。有谁能够帮我?

4

1 回答 1

1

您的拆分匹配一个空格,后跟一个 *。

您可能希望在“*”而不是“*”上进行拆分。

我试过你的代码,它适用于我的测试文件的每一行。

于 2012-07-15T21:56:03.537 回答