Java比较两个文本差异_用java比较两个文本文件的不同

RangeDifferencer

public class RangeDifferencer {

private static final RangeDifference[] EMPTY_RESULT= new RangeDifference[0];

/* (non Javadoc)

* Cannot be instantiated!

*/

private RangeDifferencer() {

// nothing to do

}

/**

* Finds the differences between two IRangeComparators.

* The differences are returned as an array of RangeDifferences.

* If no differences are detected an empty array is returned.

*

* @param left the left range comparator

* @param right the right range comparator

* @return an array of range differences, or an empty array if no differences were found

*/

public static RangeDifference[] findDifferences(IRangeComparator left, IRangeComparator right) {

int rightSize= right.getRangeCount();

int leftSize= left.getRangeCount();

//

// Differences matrix:

// only the last d of each diagonal is stored, i.e., lastDiagonal[k] = row of d

//

int diagLen= 2 * Math.max(rightSize, leftSize); // bound on the size of edit script

int maxDiagonal= diagLen;

int lastDiagonal[]= new int[diagLen + 1]; // the row containing the last d

// on diagonal k (lastDiagonal[k] = row)

int origin= diagLen / 2; // origin of diagonal 0

// script corresponding to d[k]

LinkedRangeDifference script[]= new LinkedRangeDifference[diagLen + 1];

int row, col;

// find common prefix

for (row= 0; row < rightSize && row < leftSize && rangesEqual(right, row, left, row) == true;)

row++;

lastDiagonal[origin]= row;

script[origin]= null;

int lower= (row == rightSize) ? origin + 1 : origin - 1;

int upper= (row == leftSize) ? origin - 1 : origin + 1;

if (lower > upper)

return EMPTY_RESULT;

//System.out.println("findDifferences: " + maxDiagonal + " " + lowe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值