我正在尝试读取文件并创建内容的散列图,但是我在解析步骤时遇到了麻烦。
是文本文件的一个示例put 3
returns 3
between
3
pargraphs 1
4
3
#foo 18
****** 2
单词成为键,数字是值。请注意,间距相当不稳定。这个词并不总是一个单词(不会被/ \ w + /选中),与该单词相关的数字并不总是在同一行。这就是我称之为格式不正确的原因。如果一行中有一个单词和一个数字,我可以将它拆分,但不幸的是,情况并非如此。我正在尝试创建这样的哈希映射。
{"put"=>3, "#foo"=>18, "returns"=>3, "paragraphs"=>1, "******"=>2, "4"=>3, "between"=>3}
来自Java,这很容易。使用Scanner我可以使用scanner.next()用于下一个键,scan.nextInt()用于与之关联的数字。我不太确定如何在Ruby中执行此操作,因为我似乎必须使用正则表达式。
答案 0 :(得分:2)
我建议您只使用split
,如:
h = Hash[*s.split]
s
是你的文字(例如s = open('filename').read
。信不信由你,这将准确地告诉你你所追求的是什么。
h.each{|k,v| h[k] = v.to_i}