新手问题 求指导方向。。

waikaiCQ · 2012年11月29日 · 最后由 woaigithub 回复于 2012年12月04日 · 2684 次阅读

是这样的,现在有个文件里面内容是如下格式: blue 34 33 red 3 43 blue 4 26 yellow 4 34 ..... blue 代表点的颜色 34 33 则是 x,y 坐标 用什么方法讲文件的点读取,并归类啊。求指导提示实现的方法

File.open('filename').each_line do |line|
  color, x, y = line.split
end

这个...就算用 awk 也能做到啊....

#1 楼 @Rei 你这是害了他。。

试试 csv

#7 楼 @Rei 失去了一次自己搜索解决的机会。这种问题假如你不会,research/文档下需要几秒钟?

#8 楼 @Yujing_Z 说实在话,这可不是 @Rei 的问题

#9 楼 @blacktulip 我以前遇到新人问这种问题,也是会跟他们详细的说。像这种问题,完全就是没看文档么。后来就想通了,碰到这种简单的,让他们自己谷歌去

#10 楼 @Yujing_Z 其实有时候不知道用什么关键字搜索合适,可能真的无法得到正确的答案。说真的这个问题让我用 ruby 解决我也得搜索好久的。

这和搜索没有关系。 这和语言也没有关系。 这和 awk 页没有关系。 不论使用任何语言,这种字符串的基本处理,长度,获取其中的一部分,统计个数,分割,合并,连接,循环处理,递归。 无非都是循环,最差的不追求效率的就是循环,不行就循环两次,肯定可以处理出结果的。 这个是思路的问题,基本的编程思维。学习编程,这个需要锻炼,需要经验。 推荐个 blog。 http://zhedahht.blog.163.com/ 这里面有很多的编程训练,很值得看的。作者是何海涛,还会讲解解决问题的思路,很好的一个博客。

首先定义一个坐标对象存放你的结果,就是 color 对象,有两个属性,一个 x,一个 y。 当然你也可以想@rei一样,存放在一个 array 中。 你这个数据,每一行都一样,可以循环处理,然后把每一行处理的处理结果存入一个 color 对象。 再来看看每一行如何处理,每一行都只有三个字段,正好都是你想要的,而且用空格分隔,你需要做的就是用空格分隔这个字符串,然后存起来就可以了。 空格分隔有很多的办法,可以自己写,循环字符串的字符,然后遇到空格就是一个子串的结束。 也可以利用 split 函数,split 函数几乎任何语言都有。

#8 楼 @Yujing_Z 哈,我也不懒额 google 了好多天哎。完全是新手啦,连文档啥啥的都不会查的 24 k 纯新手= = 问题中也说了,只要给个大体的方向,我自己查查就好了啊。虽然我还不清楚这个社区的主要目的是啥,但解决一些新手问题,让新手不过早失去对 ruby 的信心,不也是推广这种语言的方法么。btw 还是感谢你进来指导

#15 楼 @waikaiCQ 大家都是从新手过来的,正常

需要 登录 后方可回复, 如果你还没有账号请 注册新账号