有序分组后拼串

【问题】

要用Java写个东西读取txt中的数据,若id1或者id2的值不同,就插入END,START(详细见结果),最后只输出修改后的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:按照id1和id2分组,并在每组的id3前后分别加上START和END。

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值