有序分组后拼串

【问题】

要用Java写个东西读取txt中的数据,若id1或者id2的值不同,就插入ENDSTART(详细见结果),最后只输出修改后的id3列。我对java不熟,读入txt和写出新txt还是能自己弄的,但是不会比较id1的值或者id2的值,请大家帮忙,最好带注释,谢谢 源文件:

id1 id2 id3 
100037 1 Q 
100037 1 SR 
100037 1 Q 
100037 1 SR 
100039 1 Q 
100039 1 SR 
100044 1 Q 
100044 1 SR 
100048 1 Q 
100048 1 Q 
100048 1 SR 
100048 2 Q 
100048 2 Q 
100048 2 SR 
100078 1 Q 
100078 1 SH 
100078 1 SR 
100078 1 Q

希望得到的结果:

START 
Q 
SR 
Q 
SR 
END 
START 
Q 
SR 
END 
START 
Q 
SR 
END 
START 
Q 
Q 
SR 
END 
START 
Q 
Q 
SR 
END 
START 
Q 
SH 
SR 
Q 
END 

【回答】

       Java硬写很麻烦,用SPL只要简单3行:


A

1

=file("E:\\source.txt").import@t()

2

=A1.group@o(id1,id2).conj("START"|~.(id3)|"END")

3

=file("E:\\result.txt").export(A2)

 

A1:读取文本文件source.txt中的内容。

A2:按照id1id2分组,并在每组的id3前后分别加上STARTEND

A3:将A2结果导出到result.txt中。

      上述代码很容易集成到JAVA参考Java 如何调用 SPL 脚本