Java 如何找出兩個文字檔案中有相同欄位的行

xiaohuihui發表於2020-06-24

Java有什麼方便的類庫做檔案對比嗎?比如:檔案Old.txt和New.txt,第一行是列名,需要取出檔案中Name欄位相同的內容。部分資料如下:

Old.txt

New.txt

Name   Dept

Rachel Sales

Ashley R&D

Matthew   Sales

Alexis Sales

Megan  Marketing

Name   Dept

Emily  HR

Ashley R&D

Matthew   Sales

Alexis Sales

Megan  Marketing

期望運算結果如下:

Java 如何找出兩個文字檔案中有相同欄位的行

Java不是集合性語言,需大量使用迴圈和判斷,寫起來會比較長,程式碼大概要寫成這樣:

...

while ((String lineText = comparedReader.readLine()) != null) {

  String comparedLine = lineText.trim();

  if (searchText.equals(comparedLine)) {

    lineStr = "###=Equal:" + lineNum + "=###\n";

    break;

  }

  lineNum++;

}

rbw.write(lineStr);

comparedReader.reset();

...

文字對比方面,用集算器SPL會簡單很多,精心設計了一套集合運算領域的函式庫,實現同樣過程程式碼更簡潔,比如上面問題,僅2行:


A

1

=Old=file("Old.txt").import@t(),New=file("New.txt").import@t()

2

=Old.(Name)^ New.(Name)

其實還有很多情況用Java處理文字不太方便,甚至大檔案對比、關聯計算、入庫等需求,但用集算器SPL卻很簡單,感興趣可以參考: 、 、

集算器還很容易嵌入到Java應用程式中, 有使用和獲得它的方法。

關於集算器安裝使用、獲得免費授權和相關技術資料,可以參見 。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2700452/,如需轉載,請註明出處,否則將追究法律責任。

相關文章