lijunhao189 2020-04-01 09:24 采纳率: 0%
浏览 190
已结题

java读文本,连续行按照某一字段进行去重

java读取文本数据实现连续行之间按照某一字段进行去重,保留首行和末行。图片说明图片说明

  • 写回答

2条回答 默认 最新

  • 编程爱好者熊浪 2020-04-01 09:51
    关注

    private static final Logger logger = LoggerFactory.getLogger(CSVTest.class);

    /**
     * 456换成要判断去重的字符串
     *
     * @param inpPath
     */
    private static List<String> bufferReaderAndPrintWriter(String inpPath) {
        BufferedReader bufferedReader = null;
        List<String> values = Lists.newArrayList();
        try {
            bufferedReader = new BufferedReader(new FileReader(inpPath));
            String str = null;
            List<String> inputStrList = Lists.newArrayList();
            while ((str = bufferedReader.readLine()) != null) {
                if (str.indexOf("lisi") > -1) {
                    inputStrList.add(str);
                } else if (!CollectionUtils.isEmpty(inputStrList)) {
                    values.add(inputStrList.get(0));
                    if (inputStrList.size() > 1) {
                        values.add(inputStrList.get(inputStrList.size() - 1));
                    }
                    inputStrList.clear();
                    values.add(str);
                } else {
                    values.add(str);
                }
            }
            if (!CollectionUtils.isEmpty(inputStrList)) {
                values.add(inputStrList.get(0));
                if (inputStrList.size() > 1) {
                    values.add(inputStrList.get(inputStrList.size() - 1));
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (bufferedReader != null) {
                    bufferedReader.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return values;
    }
    
    public static void main(String[] args) {
        System.out.println(CSVTest.bufferReaderAndPrintWriter("C:\\Users\\xionglang\\Desktop\\test.txt"));
    }
    
    
    
        ![图片说明](https://img-ask.csdn.net/upload/202004/01/1585726962_371780.png)
    
    评论

报告相同问题?

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染