2012-02-01 103 views
0

問題:我有兩個文件,一個是序列號,項目,價格,位置和其他文件的項目列表。所以我想比較兩個文件,並用序列號打印文件1中重複項目的次數。讀取兩個文件(文本)並比較公共值並輸出字符串?

文本1文件將有

enter image description here

文本2文件將有

enter image description here

輸出應該是

enter image description here

所以在F ile1未按正確的順序格式化,文件2按順序(逐行)。

回答

0

好了我的方法,這將是

  1. 閱讀在文件1和文件2成字符串
  2. 「分割」在基於文件1,以及文件2串「」如果這是正在使用
  3. 檢查項目在每第三個,所以我的迭代將迭代+3每次(您可能需要排序,如果不是爲了這兩個)
  4. 如果發現存儲在數組,ArrayList等如果出現更多項目,請返回步驟3。否則停止
0

即使您的file1格式不正確,它的內容也有一些可以用來成功讀取的格式。

對於每個商品,它包含所有信息(即序列號,名稱,價格,位置),但不是按照某個順序。因此,在閱讀文件1中的每個項目時,請注意並使用以下圖案 -

  • 序列號始終爲純整數。
  • 價格有$.字符。
  • 位置長度爲2個字符,全部爲大寫字母。
  • 和名稱是一個字符串不能是以上任何。
0

這樣的問題不能通過單片JAVA代碼最好地解決。如果你沒有工具約束,那麼推薦的解決方法是將數據從文件1導入到數據庫表中,然後從程序中運行查詢來獲取任何你喜歡的信息。您可以根據項目輕鬆選擇序列號,並根據位置對它們進行分組計數。

這種方法將確保您可以跟上不斷變化的需求,如果您的文件很大,您將獲得良好的性能。

我希望你對SQL和DB工具非常熟悉,所以我沒有發佈任何細節。

0

使用正則表達式。

 
Step one, tracing and splitting at [\d,], store results in map 
Step two, read in the word from the second file. say it's "pen" 
Step three, do regex search "pen" on each string within the map. 
Step four, if the above returns true , do something like ([A-Z][A-Z],) on each string within the map. 
相關問題