解决Java正则表达式去除数据中的尖括号出现输出文件中数据缺失的问题

        由于我的实验中需要用到RDF三元组格式的数据,从网上下载的LUBM数据集中的数据含有“< >”和“.”使得这些含特殊字符的数据不方便存储到数据表中,编写Java代码想把这些字符去掉,考虑用正则表达式,但对这一块不熟悉。又请教大神发现可以用替换的办法来实现。原始数据格式为“<http://www.Department0.University1000.edu/AssistantProfessor0> <http://spark.elte.hu#doctoralDegreeFrom> <http://www.University292.edu> .”运行后的数据变为“http://www.Department0.University1000.edu/AssistantProfessor0 http://spark.elte.hu#doctoralDegreeFrom http://www.University292.edu

Java代码如下:

package com.test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

public class Test {
    public static void main(String[] args) {
        // String s ="<http://www.Department0.University1000.edu/AssistantProfessor0> <http://spark.elte.hu#doctoralDegreeFrom> <http://www.University292.edu> .";
        try {
            //读取文件
            BufferedReader br = new BufferedReader(new FileReader("D:\\LUBM_1.n3"));
            String data = "";   //+ "\r\n"
            
            File file = new File("D:\\LUBM.n3");
            BufferedWriter bw = new BufferedWriter(new FileWriter(file));
            int i;
            while((i=br.read())>0){
                data = br.readLine().replaceAll("[<>]+", "").replace(" .", ""); 
//接着读下一行
                bw.write(data);
                bw.newLine();
            }
            System.out.println("跑完了!");
            bw.close(); 
            br.close();
         } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
       开始的时候用while(data! = null)循环的时候,拿到空值,导致导出的数据条数不完整,莫名减少了二百多条。后来声明一个整型变量i,再循环while((i=br.read())>0)时先读数据,数据量大于0才循环去读下一行,有效解决了读到空值时也循环的问题,最后输出的文件中数据条数没缺失。

java处理字符串“{"id": 7, "table": "alert_message_oa", "platform": "prjAprProc", "requestId": 1650140, "申请人": "黄莉", "所在公司": "集团公司", "所在部门": "业务中心", "流程编号": "ZHZHXM09202503050001", "流程说明": "", "申请日期": "2025-03-05", "相关流程": "", "相关附件": "", "紧急程度": "紧急", "项目名称": "竹子经销商放开二手车畅享60期", "项目优先级": "P0", "期望上线日期": "2025-03-10", "计划启动日期": "2025-03-14", "计划完成日期": "2025-03-14", "详细需求描述": "<div id=\"wea_rich_text_default_font\" style=\"font-family:微软雅黑;font-size:12;\"><p>       针对竹子战略性合伙人模式业务,特此申请四川、湖南、杭州、云南、广东,以及后期省份开通的竹子业务均恢复准新车(二手车)畅享客户的准入,请科技针对该经销商打开二手车畅享60期<br />                                               谢谢支持</p><p> </p></div>", "需求背景描述": "集团为控制风险,于2 月25日关闭了担保业务二手车畅享客户的准入;<br>现有竹子业务的0公准新车业务(资方认定为二手车),实际按新车产品方案执行,且利润再增加10%,高收益覆盖高风险。<br>竹子常规二手车基本走民生助贷,不会走我司秒租贷产品;因0公准新车民生助贷的评估价过低,故只这部分车辆业务会走秒租贷<br>     ", "预计项目成本": null, "预计项目工时(人/日)": "1"}”中的特殊符号
最新发布
03-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值