簡體   English   中英

讀取兩個文件(文本)並比較公共值並輸出字符串?

[英]Read two files (text) and compare for common values and output the string?

問題:我有兩個文件,一個包含序列號,項目,價格,位置列表,其他文件包含項目。 所以我想比較兩個文件並打印輸出文件編號在序列號中重復的次數。

Text1文件將具有

在此處輸入圖片說明

Text2文件將具有

在此處輸入圖片說明

輸出應為

在此處輸入圖片說明

因此,文件1的格式不正確,文件2的格式不正確(逐行)。

由於您沒有為此投入明顯的代碼或精力,因此,我僅向您提示/引導您使用一些工具。

解析字符串: http : //docs.oracle.com/javase/6/docs/api/java/lang/String.html

要從文件中讀取: http : //www.roseindia.net/java/beginners/java-read-file-line-by-line.shtml

而且我建議您先讀取文件#2並將這些值保存到arraylist中,以便以后在搜索時可以對它們進行迭代。

好吧,我的方法是

  1. 將file1和file2讀入字符串
  2. 如果正在使用“ 1”,則基於“,”“拆分”文件1和文件2中的字符串
  3. 在第3個項目中檢查項目,以便我的迭代每次都迭代+3(如果沒有排序,則可能需要排序)
  4. 如果發現存儲在Array,ArrayList等中。如果存在更多項,請返回步驟3。 其他地方

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

對於每個項目,它具有所有信息(即序列號,名稱,價格,位置),但沒有特定的順序。 因此,從文件1中讀取每個項目時,請注意並使用以下模式:

  • 序列號始終是純整數。
  • 價格有$$ . 字符。
  • 位置是2個字符長,全部為大寫字母。
  • 並且name是字符串,不能是以上任何一個。

單一的JAVA代碼不能最好地解決這些問題。 如果您沒有工具約束,那么建議的解決方法是將文件1中的數據導入數據庫表,然后從程序中運行查詢以獲取所需的任何信息。 您可以輕松地根據項目選擇序列號,並根據位置對其進行分組以進行計數。

這種方法將確保您能夠適應不斷變化的需求,如果文件很大,您將擁有良好的性能。

我希望您精通SQL和DB工具,因此我沒有在上面發布任何詳細信息。

使用正則表達式。

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.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM