Re: [問題] IO::each_line

看板Ruby作者 (我住5F)時間15年前 (2010/06/21 00:26), 編輯推噓0(003)
留言3則, 2人參與, 最新討論串2/2 (看更多)
抱歉各位我舉的例子太爛: 重新舉例如下 #example #test.txt = "abcdef" File.open("data").each_line("c"){|l| puts(l)} #output abc #可否把'c'給移除? def 當然各位的建議很好(小弟也知道類似的作法) File.open("data").each_line("c"){|l| puts(l.chomp("c"))} #output ab #ok! def 不過有辦法做到跟String一樣直覺嗎?不用多一次chomp or strip? #Example "abcdef".split("c").each{ |s| puts(s) } ※ 引述《lg31cm (我住5F)》之銘言: : 標題: [問題] IO::each_line : 時間: Sat Jun 19 08:40:59 2010 : : 環境: : e.g. Ruby 1.9 : : 狀況: : : #IO::each_line 會保留delimiter,有沒有什麼辦法可以去掉呢? : : #example : #test.txt = "abc\ndef\n" : File.open("test.txt").each_line{ |l| printf("%s",l) } : : #output : abc\n #可不可以不要\n?有何簡便的方法? : def\n : : : 附錄: : none : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 122.124.98.125 : 推 zero00072:我實驗過,根本沒遇到這個問題。或許可以試試 l.chomp。 06/19 10:03 : → zero00072:還是你的 \n 不是跳脫字元?那用 .gsub(/\\n/, "")。 06/19 10:09 : → Dannvix:用 File.open("test.txt").each { |x| puts x } 就好啦 06/19 14:24 : → Dannvix:唔,我錯了 each 好像也會保留 >"< 06/19 14:26 : 推 ducksteven: String#trim String#chomp 06/19 15:27 : → ducksteven:我錯了 沒有 trim 是 chomp XD 06/19 15:28 : 推 godfat:與 trim 對應的應該是 strip, chomp 是直接砍掉最後一個 06/19 23:07 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.124.98.125

06/21 00:38, , 1F
File.open("data").read.split("c").each {|s| puts s}
06/21 00:38, 1F

06/21 12:10, , 2F
可是原 PO 的問題不太直覺啊 XD" 所以用那方法是正確的
06/21 12:10, 2F

06/21 12:12, , 3F
不過如果全部都要用 c 來換行,不如就把 $/ 改掉吧 @@
06/21 12:12, 3F
文章代碼(AID): #1C7a4bPB (Ruby)
討論串 (同標題文章)
本文引述了以下文章的的內容:
3
10
完整討論串 (本文為第 2 之 2 篇):
3
10
文章代碼(AID): #1C7a4bPB (Ruby)