2014-11-08 49 views
-1

需要幫助。我有一個很大的文本文件,它有位置數據(用數字表示),需要用其相應的位置替換。這兩個文件是單獨的文本文件。文本文件處理 - 使用java

你能幫助java實用工具如何替換一個文件中的數值使用另一個文件的位置值。

下面是文件1和文件2的內容示例。文件1具有數字數據和文本。第一列中的數字數據需要用來自file2的相應條目替換。因此,文件1需要爲文件2中的每個條目循環。

Text File1: 19922973 @Uniquehope was good 
Test File2: 19922973 Chicago, IL 

需要用Chciago,IL替換19922973。 請提供您的意見。

感謝 SAURABH

+1

你說你「需要更換」,但你甚至不知道在哪裏以及爲了什麼目的;更重要的是,更重要的是,代碼在哪裏? – fge 2014-11-08 17:46:27

+0

@fge:我還沒有編寫代碼。仍然決定如何繼續。 – Saurabh 2014-11-08 17:53:38

+0

好吧,對此突然抱歉,SO不是免費的編碼服務;現在,不那麼突然,學習如何編程將意味着在你做對之前你會被燒燬,所以試着用你自己的方式去做;如果你不能,那麼問一個問題。此外,請記住不要墮入[XY問題綜合徵](http://xyproblem.info) – fge 2014-11-08 17:55:29

回答

1

您將有兩個循環。首先讀入「big」文本文件,並將每行分成一個HashMap條目,其中數字作爲鍵,餘數作爲值,第二個循環將讀取File1,將其拆分爲包含兩個元素的數組,然後查找HashMap中的數字,並用HashMap中的值替換數字,並將結果寫入新文件。

http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#split-java.lang.String-int- http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html

1

這很簡單!我認爲最有效的方法是先讀取第二個文件,然後創建一個所有值的位置,其中鍵爲第一列,值爲第二列。

您可以通過對第二個文件中的每個條目執行簡單的split()來獲得這兩列。

然後,在第一個文件中,執行相同的分割,然後使用剛剛創建的HashMap執行替換。 (當然,爲此,您需要將第一個文件讀入某個緩衝區,然後應用替換並重新寫回該文件。我認爲您不能像進入文件那樣進行字符串替換。)