如何拆出字串中的数值并排序

通常情形下,一列数据都是整体参与排序,但如果数据是由字母跟序号组合在一起,比如名字加序号的一列数据:

Mike105

Rose11

Rose1

Rose5

Mike6

现在需要先按名字排序,再按序号排序。比如Mike6要排在Mike105前面,期望的结果如下:

Mike6

Mike105

Rose1

Rose5

Rose11

这个需求看似简单,但真要考虑实现它的步骤时,就会发现还真不是那么容易。就算是文件不够大的情形,也需要先按行读取文件,将数据拆分为两列后,先按名字列排序,当名字列同时,再根据序号列局部排。而这种复合排序,一般没有现成的函数,完全需要自己实现。另外,考虑文件特别大的情形时,还得使用文件缓存来进行排序,这些代码实现起来都特别繁琐。

这种情况,如果有集算器就方便多了,用SPL实现只要一句话:

file("d:/data.txt").import().sort(#1.words@w())

 

集算器脚本SPL不光能轻松排序结构化的文本,对它做分组,过滤也都非常方便,甚至还能关联计算多个文件。具体内容可以参考:SPL 结构化文本计算

 

集算器是进行文件数据源处理的专业工具,可以方便地进行 TXT、Excel、Xml、Json、CSV、ini 等各种文件数据的混合计算、入库以及导出等工作。桌面级计算工具,即装即用,配置简单,调试功能完善,可设置断点、单步执行,每步执行结果都可查看。语法简单,符合人的自然思维,比其他高级开发语言更简单。请参阅文件处理的应用场景

 

SPL也能很方便地嵌入到JAVA应用,可参考:Java 如何调用 SPL 脚本

具体使用方法可参考: 如何使用集算器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值