diff --git a/laws-modules/src/main/java/com/jero/modules/compare/utils/DiffUtils.java b/laws-modules/src/main/java/com/jero/modules/compare/utils/DiffUtils.java index 46068590..9517b5d9 100644 --- a/laws-modules/src/main/java/com/jero/modules/compare/utils/DiffUtils.java +++ b/laws-modules/src/main/java/com/jero/modules/compare/utils/DiffUtils.java @@ -2228,7 +2228,7 @@ public class DiffUtils { return diff_prettyHtml(diff_main(text1,text2)); } - public List getHtmlDiffStr(String text1,String text2){ + public List getHtmlDiffStr(String text1, String text2){ Map replaceMap1 = new HashMap<>(); Map replaceMap2 = new HashMap<>(); //text1 = text1.replaceAll("", ""); @@ -2237,7 +2237,7 @@ public class DiffUtils { while (startIndex > -1) { int endIndex = text1.indexOf(">", startIndex); String subStr = text1.substring(startIndex, endIndex + 1); - String repStr = ""; + String repStr = "replaceImg" + index; text1 = text1.replace(subStr, repStr); replaceMap1.put(repStr,subStr); index++; @@ -2250,7 +2250,7 @@ public class DiffUtils { while (startIndex > -1) { int endIndex = text2.indexOf(">", startIndex); String subStr = text2.substring(startIndex, endIndex + 1); - String repStr = ""; + String repStr = "replaceImg" + index; text2 = text2.replace(subStr, repStr); replaceMap2.put(repStr,subStr); index++; @@ -2261,6 +2261,7 @@ public class DiffUtils { //定义输出结果 String LResultStr=""; String RResultStr=""; + int i = 0; for(Diff deff:diffs){ String text = deff.text; // String text = deff.text.replace("&", "&").replace("<", "<") @@ -2279,20 +2280,31 @@ public class DiffUtils { } } List result =new ArrayList<>(); + LResultStr = updataErrorDiff(LResultStr); + RResultStr = updataErrorDiff(RResultStr); for (String key:replaceMap1.keySet()) { LResultStr = LResultStr.replace(key,replaceMap1.get(key)); } for (String key:replaceMap2.keySet()) { RResultStr = RResultStr.replace(key,replaceMap2.get(key)); } - LResultStr = updataErrorDiff(LResultStr); - RResultStr = updataErrorDiff(RResultStr); + LResultStr = updataErrorDiff2(LResultStr); + RResultStr = updataErrorDiff2(RResultStr); result.add(LResultStr); result.add(RResultStr); return result; } private String updataErrorDiff(String str) { + return str.replace("replaceImg", "replaceImg") + .replace("replaceImg", "replaceImg") + .replace("replaceImg", "replaceImg") + .replace("replaceImg", "replaceImg") + .replace("r>", "
") + .replace("r>", "
"); + } + + private String updataErrorDiff2(String str) { return str.replace("<", "<") .replace("<", "<"); } @@ -2301,52 +2313,11 @@ public class DiffUtils { DiffUtils dmp = new DiffUtils(); // String text1 = "我方在“福市财政资金补助项目管理系统”的项目实施过程,为保证该项目的工程进度、zhiliang,符合数办项目的实施管理规范与要求。"; // String text2 = "我方在“福州市财政资金补助项目管理系统”的项目实施过程,为保证该项目的工程进度、质量,符合目的实施管理规范与要求。"; - String str1="6转向系\n" + - "6.1汽车(三轮汽车除外)的方向盘应设置于左侧,其他机动车的方向盘不得设置于右侧;专项作业车、教练车按需要可设置左右两个方向盘。有驾驶室的正三轮摩托车如使用方向盘转向,则方向盘中心立柱距车辆纵向中心平面的水平距离应小于等于200 mm;其他摩托车不得使用方向盘转向。\n" + - "6.2机动车的方向盘(或方向把)应转动灵活,操纵方便,无卡滞现象。机动车应设置转向限位装置。转向系统在任何操作位置上,不得与其他部件有干涉现象。\n" + - "6.3机动车(摩托车、三轮汽车、手扶拖拉机运输机组除外)正常行驶时,转向轮转向后应有一定的回正能力(允许有残余角),以使机动车具有稳定的直线行驶能力。\n" + - "6.4机动车方向盘的最大自由转动量应小于或等于:\n" + - "a) 最大设计车速大于或等于100 km/h 的机动车:15°\n" + - "b) 三轮汽车:35°;\n" + - "c) 其他机动车:25° 。\n" + - "6.5汽车(三轮汽车除外)应具有适度的不足转向特性。\n" + - "6.6三轮汽车、摩托车的转向轮向左或向右转角应小于等于:\n" + - "a)\t三轮汽车、三轮摩托车、正三轮轻便摩托车:45°;\n" + - "6)\t\t两轮普通摩托车、两轮轻便摩托车:48°。\n" + - "6.6机动车在平坦、硬实、干燥和清洁的道路上行驶不应跑偏,其方向盘(或方向把)不应有摆振、路感不灵或其他异常现象。\n" + - "6.8机动车在平坦、硬实、干燥和清洁的水泥或沥青道路上行驶,以10 km/h的速度在5 s之内沿螺旋线从直线行驶过渡到外圆直径为25 m的车辆通道圆行驶,施加于方向盘外缘的最大切向力应小于等于245 N。\n" + - "6.9专用校车应采用转向助力装置;其他机动车转向轴最大设计轴荷大于4 000 kg时,也应采用转向助力装置。装有转向助力装置的机动车,转向时其转向助力功能不得出现时有时无的现象,且转向助力装置失效时仍应具有用方向盘控制机动车的能力。装有电动转向助力装置的汽车,在产品使用说明书规定的正常使用状态下,应保证转向助力装置的电能供应。\n" + - "6.10汽车和汽车列车(不计具有作业功能的专用装置的突出部分)、轮式拖拉机运输机组应能在同一个车辆通道圆内通过,车辆通道圆的外圆直径认为25.00 m,车辆通道圆的内圆直径D2为10.60 m。 汽车和汽车列车、轮式拖拉机运输机组由直线行驶过渡到上述圆周运动时,任何部分超出直线行驶时的 车辆外侧面垂直面的值(外摆值)应小于等于0.80 m(对铰接客车和铰接式无轨电车外摆值应小于等于 1.20 m),其试验方法见GB 1589。\n" + - "6.11汽车(三轮汽车除外)的车轮定位应与该车型的技术要求一致。对前轴采用非独立悬架的汽车(前轴采用双转向轴时除外),其转向轮的横向侧滑量,用侧滑台检验时侧滑量值应在±5 m/km之间。\n" + - "6.12转向节及臂,转向横、直拉杆及球销不得有裂纹和损伤,并且转向球销不应松旷。对机动车进行改装或修理时横、直拉杆不得拼焊。\n" + - "6.13三轮汽车、摩托车的前减振器、上下联板和方向把不应有变形和裂损。\n"; - String str2="6转向系\n" + - "6.1汽车(三轮汽车除外)的方向盘应设置于左侧,其他机动车的方向盘不应设置于右侧;专项作业车、教练车按需要可设置左右两个方向盘。装有两个后轮、有驾驶室的正三轮摩托车如使用方向盘转向,则方向盘中心立柱距车辆纵向中心平面的水平距离应小于或等于200 mm ;其他摩托车不应使用方向盘转向。\n" + - "6.2机动车的方向盘(或方向把)应转动灵活,无卡滞现象。机动车应设置转向限位装置。转向系统在任何操作位置上,不应与其他部件有干涉现象。\n" + - "6.3机动车(摩托车、三轮汽车、手扶拖拉机运输机组除外〉正常行驶时,转向轮转向后应有一定的回正能力(允许有残余角),以使机动车具有稳定的直线行驶能力0\n" + - "6.4机动车方向盘的最大自由转动量应小于或等于:\n" + - "a) 最大设计车速大于或等于100 km/h 的机动车:15°\n" + - "b) 三轮汽车:35°;\n" + - "c) 其他机动车:25° 。\n" + - "6.5汽车(三轮汽车除外)应具有适度的不足转向特性。\n" + - "6.6三轮汽车、摩托车的转向轮向左或向右转角应小于或等于:\n" + - "a) 三轮汽车、三轮摩托车、正三轮轻便摩托车:45°;\n" + - "b)两轮普通摩托车、两轮轻便摩托车:48°0\n" + - "6.7机动车在平坦、硬实、干燥和清洁的道路上行驶不应跑偏,其方向盘(或方向把)不应有摆振等异常现象。\n" + - "6.8机动车在平坦、硬实、干燥和清洁的水泥或沥青道路上行驶,以10 km/h 的速度在5 s 之内沿螺旋线从直线行驶过渡到外圆直径为25m 的车辆通道圆行驶,施加于方向盘外缘的最大切向力应小于或等于245 N。\n" + - "6.9汽车(三轮汽车除外)的车轮定位应与该车型的技术要求一致。对前轴采用非独立悬架的汽车(前轴采用双转向轴时除外),其转向轮的横向侧滑量,用侧滑台检验时侧滑量值应小于或等于5 m/km。\n" + - "6.10 专用校车应采用转向助力装置;其他机动车转向轴最大设计轴荷大于4 000 kg 时,也应采用转向助力装置。装有转向助力装置的机动车,转向时其转向助力功能不应出现时有时无的现象,且转向助力装置失效时仍应具有用方向盘控制机动车的能力。\n" + - "6.11转向节及臂,转向横、直拉杆及球销应连接可靠,且不应有裂纹和损伤,并且转向球销不应松旷。对机动车进行改装或修理时横、直拉杆不应拼焊。\n" + - "6.12三轮汽车、摩托车的前减振器、上下联板和方向把不应有变形和裂损。"; - String line1="6.1汽车(三轮汽车除外)的方向盘应设置于左侧,其他机动车的方向盘不得设置于右侧;专项作业车、教练车按需要可设置左右两个方向盘。有驾驶室的正三轮摩托车如使用方向盘转向,则方向盘中心立柱距车辆纵向中心平面的水平距离应小于等于200 mm;其他摩托车不得使用方向盘转向。"; - String line2="6.1汽车(三轮汽车除外)的方向盘应设置于左侧,其他机动车的方向盘不应设置于右侧;专项作业车、教练车按需要可设置左右两个方向盘。装有两个后轮、有驾驶室的正三轮摩托车如使用方向盘转向,则方向盘中心立柱距车辆纵向中心平面的水平距离应小于或等于200 mm ;其他摩托车不应使用方向盘转向。"; - String compareStr = dmp.getHtmlDiffString(str1,str2); - //String compareStr = dmp.getHtmlDiffString(line1,line2); - System.out.println(compareStr); - System.out.println("---------------------------------------------------"); + String str1="
测试
11
22
33
44
55
66
12
23
34
45
56
AA55
BB55

67
AA
AA11
AA22
AA33
AA44
AA66
BB
BB11
BB22




BB33
BB44
BB66
CC
CC11
CC22
CC33
CC44
CC55
CC66

表 2 K 的取值表

N、4、5、6、7、8、9、10 拆分啥样?
n
4
5
6
7
8
9
10
K
3. 2
2. 8
2. 6
2. 5
2. 4
2. 3
2. 3
K

1. 6
1. 25
1. 06
0. 94
0. 85
0. 77
0. 73
测试
11
12
13
14
15
22
23
24
25
AA25
BB25


26
AA
AA11
AA12
AA13
AA26
BB
BB11
BB12

BB13
BB26
CC
CC11
CC12
CC13
CC25
CC26
"; + String str2="
测试
123
22
33
44
55
66
12
23
34
45
56
AA55
BB55

67
AA
AA11
AA22
AA33
AA44
AA66
BB

BB22




BB33
BB44

BB66
CC
CC11
CC22
CC33
CC44
CC55
CC66

表 2 K 的取值表

N、4、5、6、7、8、9、10 拆分啥样?1
n
4
5
61
7
8
9
10
K
3. 2
2. 8
2. 6
2. 5
2. 4
2. 3
2. 3
K

1. 6
1. 25
1. 06
0. 94
0. 85
0. 77
0. 73
测试
11
12
13
14
15
22
23
24
25
AA25
BB25


26
AA
AA11
AA12
AA13
AA26
BB
BB11
BB12
BB13

BB26
CC
CC11
CC123
CC13
CC25
CC26
"; List htmlDiffStr = dmp.getHtmlDiffStr(str1, str2); System.out.println(htmlDiffStr.get(0)); - System.out.println("=============================================="); + System.out.println("=========================="); System.out.println(htmlDiffStr.get(1)); } }