Java 如何找出兩個文本文件中有相同字段的行

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不是集合性語言,需大量使用循環和判斷,寫起來會比較長,代碼大概要寫成這樣:

...

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卻很簡單,感興趣可以參考:SPL結構化文本計算結構化文本計算示例(一)結構化文本計算示例(二)

集算器還很容易嵌入到Java應用程序中,Java如何調用SPL腳本有使用和獲得它的方法。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章