作者divaka (希望每個人都活的自在)
看板java
標題[問題] 刪除文字檔內多餘的東西
時間Tue Jan 20 23:23:56 2009
各位好 !
因為我不知道這個問題該用什麼關鍵字爬文找答案,所以跑來這發問了
希望沒有違反到版規
--------------------------------以下是問題---------------------------
假設現在我有一個 txt 檔,內容如下
我,你,他,我,你,他,你,你,你
但我並不希望裡面有重覆的字出現,所以希望利用程式碼改成
你,我,他
並存成新的 txt 檔,請問我該怎麼做比較好呢..?
或是怎樣的思考方式
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.72.222
1F:推 yyc1217:先排序 再用迴圈跑? 若下一個等於現在這個 就刪掉 01/20 23:32
2F:推 infinitlee:塞到Set裡,在讀出來 01/21 00:08
3F:推 cgkm:檔案小 => 二樓 檔案未必小 => 一樓 01/21 03:41
4F:推 cgkm:混合式:第一回合,先塞入 set,塞滿後排序然後寫入暫存檔 01/21 03:52
5F:推 cgkm: 第二回合:merge 所有的暫存檔, 同時剔除重複的字 01/21 04:05
6F:推 ClareQ:用Set操作就沒錯啦...不需排序還是什麼暫存檔的反而沒效率 01/21 07:59
7F:推 TonyQ:ClareQ , cgkm 提的混合式 ,恐怕是在一個記憶體空間塞不下的 01/21 08:16
8F:→ TonyQ:狀況下才會用到的東西 ,應該只是考慮到不常見的特殊情境. :p 01/21 08:17
9F:推 rukawa0328:特殊情況?可以舉個例子?感覺這方法並無法解決空間問題~ 01/21 11:46
10F:推 TonyQ:在字串極大跟數量極多下,目的應是分離成多個子問題來求解. 01/21 14:00
11F:推 LyinZ:他說的應該是寫暫存檔吧? 01/21 22:45
12F:推 ClareQ:當然也可以實作出以磁碟IO為主來取代記憶體存取的Set 01/22 00:48
13F:→ ClareQ:用Set比自己實作資料處理流程,更易懂好維護和抽換實作啊^^ 01/22 00:51
14F:推 sbrhsieh:檔案極大不代表樣本數極大. 01/22 02:40
15F:推 sbrhsieh:排序對空間的需求不是更嚴苛? 01/22 02:43
16F:推 cgkm:限制一次排序數量 然後用 mergesort 的 merge 01/22 03:16