JAVA 如何实现大文本去除重复行

Posted xiaohuihui-11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 如何实现大文本去除重复行相关的知识,希望对你有一定的参考价值。

去重复行,用SQL写很简单,就一句SELECT DISTINCT … FROM。但是文件上没法直接用SQL了,想用SQL还得找个数据库先建表,也很麻烦。如果是小文件,那用java对付一下也不太费劲,大概这样:

       String file ="d:/urls.txt";

       ArrayList<String> result = new ArrayList<String>();

       BufferedReader br=null;

       try{

           br = new BufferedReader(new FileReader(file));

           String row = br.readLine();

           while(row!=null){

              if(!result.contains(row)){

                  result.add(row);

              }

              row = br.readLine();

           }

       }finally{

           if(br!=null)

              try {

                  br.close();

              } catch (IOException e) {

              }

       }

但如果是大文件,这代码肯定崩了。这时候得用文件做缓存,或者先排序,总之都非常麻烦。

这种情况,如果有集算器就省事多了,用SPL只要一句话:

file("d:/urls.txt").cursor().groupx(#1).fetch()

甚至还可以直接对着文件写SQL:

$select distinct #1 from d:/urls.txt

 

集算器和SPL不仅能对文本做去重,还有很多运算都可以做,其中大多数查询还能直接用SQL,可以参考:SPL 结构化文本计算 

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

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

以上是关于JAVA 如何实现大文本去除重复行的主要内容,如果未能解决你的问题,请参考以下文章

java如何去除字符串中重复的字符

java gridlayout 如何实现30行2列如图示的排列?

DataTable如何去除重复的行

如何实现Java多行文本框换行效果

linux:如何对文本里的相同行进行去重

华为OD机试真题Java实现去除多余空格真题+解题思路+代码(2022&2023)