解析txt资料
解析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); }