解析txt文件



public static String readFileContent(String filepath) {
try {
BufferedReader br = new BufferedReader(new FileReader(filepath));
//基元素: "sms,deliver,"10657502022321","","","2011.07.28 11:04","","彭元彬,朱宇英/CA1509北京首都机场-杭州萧山机场2011-07-31 07:55/起飞/总票款1420.0元/保险费0.0元/票号999-2155782847999-2155782848/请持有效身份证件到机场办理手续,如有疑问请致电4008100999-8[中国国航]"
String s,str; //每条数据

while((s = br.readLine())!=null){
//System.out.println("数据记录为:"+s);

String[] recArray = parseRecord(s); // 按”""“ 截取
if (recArray.length>=6) { //该条记录长度
String p=recArray[6]; //得到第六个数组
String[] ps=parseRecord(p);//获取票号所属引号组
if (ps.length>=5) {
String ppp=ps[5];//获取票号组
String[] pp=subRecord(ppp); //按“/”截取值存入数组PP中
for (int j = 0; j < pp.length; j++) {
System.out.println("PP-PP-PP--PP-"+pp[j]);
}
}

//子元素:"殷俊/CA4107成都双流机场-北京首都机场2011-08-05 10:00/起飞/总票款1350.0元/保险费0.0元/票号999-2155782063/请持有效身份证件到机场办理手续,如有疑问请致电4008100999-8[中国国航]"
for (int i = 0; i < ps.length; i++) {
System.out.println("P-P-P-P-"+ps[i]+"ps.length:"+ps.length);
//截断
//按“/”截取值存入数组PP中
for (int j = 0; j < ps.length; j++) {
String[] pa=subRecord(ps[j]); // 按"/" 截取
System.out.println("pa:"+pa.length);
//子元素:"陈超,缪小红,尹纤黛/CA1726广州白云机场-杭州萧山机场2011-07-29 18:20/起飞/总票款2310.0元/保险费0.0元/票号999-2155782014999-2155782015999-2155782016/请持有效身份证件到机场办理手续,如有疑问请致电4008100999-8[中国国航]"
for (int k = 0; k < pa.length; k++) {
System.out.println("元素pa"+k+":"+pa[k]);
}

if (pa.length>=5) { //子子元素: 票号999-2155782063...
System.out.println("票号pa:"+j+"-----"+pa[5]);
//对票号处理 票号999-2155782014999-2155782015999-2155782016 ...
String sr=pa[5].substring(2); //截取后如:999-2155782014999-2155782015999-2155782016 ...
int begin = 0;
int end = 14;
while(end<=sr.length()) {
String b = sr.substring(begin,end);
System.out.println("票号截取值:"+b);
begin += 14;
end += 14;
}

}

}
}
}

int i=0;
for ( i = 0; i < recArray.length; i++) {
System.out.println("元素"+i+": "+recArray[i]);
String yString=recArray[i];
if (i==recArray.length-1) {
str=recArray[i];
String[] subArray=subRecord(str);
//System.out.println("eeee"+subArray);
int pi=subArray.length-2;
for(int j=0;j<subArray.length;j++){
System.out.println("子元素"+j+":"+subArray[j]);
//System.out.println("票号:"+subArray[5]);
if (j==subArray.length-7) {
String subString=subArray[j];
String[] ssubArray=ssubRcord(subString);
for (int k = 0; k < ssubArray.length; k++) {
System.out.println("子子元素"+k+":"+ssubArray[k]);
}

System.out.println("yString:"+yString);

}

}

}

}



}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String[] parseRecord(String record) {
String[] recArray = record.split(",(?=\")|(?<=\"),");//按引号截取

//String[] recArray2 = record.
return recArray;
}
public static String[] subRecord(String subrString){
String[] subArray=subrString.split("/");//按斜杠截取
return subArray;
}

public static String[] ssubRcord(String sstr){
String[] ssubArray=sstr.split(",");//按逗号截取
return ssubArray;

}
public static String[] phNo(String ph){
//String[] phArray=ph.ch //票号截取
return null;
}

public static String[] subStrings(String sstrr){ //对票号截取处理
//String string="票号999-2155782014999-2155782015999-2155782016";
//String str="999-";

String sr=sstrr.substring(2);
int begin = 0;
int end = 14;
while(end<=sr.length()) {
String b = sr.substring(begin,end);
System.out.println(b);
begin += 14;
end += 14;
}
return null;
}


public static void main(String[] args) {
String filepath = "E:\\sxySMS\\smstest2(1).txt";
readFileContent(filepath);
//String s="票号999-2155782014999-2155782015999-2155782016";
//subStrings(s);


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值