⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 package.java

📁 银行8583报文分析源码,供考参.程序输出XML再交给采集程序入数据库
💻 JAVA
字号:
package com.sunyard.dataanalyze;
/**
 * <p>Title: 实时数据包</p>
 * <p>Description: 实时数据包定义</p>
 * <p>Copyright: Copyright (c) 2008</p>
 * <p>Company: SUNYARD CO.,LTD</p>
 * @author 黎灵青
 * @version 1.0
 */
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Package {
	private String tradeNo;//交易码--暂时没用
	private int headLength;//包头长度--暂时没用
	private Map content = new HashMap();//数据
	/**
	 * 
	 * @param packageData
	 */
	public Package(String packageData) {
		parseHead(packageData);
		parseContent(packageData);
	}
	/**
	 * Description: 数据包包头解析
	 * @param packageData
	 */
	private void parseHead(String packageData) {
		int R_Position = packageData.indexOf('R');
		this.headLength = R_Position;
		if (getHeadLength() == PackageConstants.HEAD_LONG) {
			String _tradeNo = packageData.substring(
					PackageConstants.TRADENO_START_LONG,
					PackageConstants.TRADENO_START_LONG
							+ PackageConstants.TRADENO_LENGTH);
			this.tradeNo = _tradeNo;
		} else if (getHeadLength() == PackageConstants.HEAD_SHORT) {
			String _tradeNo = packageData.substring(
					PackageConstants.TRADENO_START_SHORT,
					PackageConstants.TRADENO_START_SHORT
							+ PackageConstants.TRADENO_LENGTH);
			this.tradeNo = _tradeNo;
		} else {
			PackageConstants.log.error("数据包错误"+packageData);
			System.out.println("PACKAGE FORMAT ERROR");
		}
	}
	/**
	 * Description: 数据包数据解析
	 * @param packageData
	 */
	private void parseContent(String packageData) {
		packageData = packageData.trim();
		String format = "<*>*</>";
		String[] str = packageData.trim().split(format);
		String regEx="^<[A-Za-z0-9]*>"; 
		Pattern p=Pattern.compile(regEx);
		for (int i = 1; i < str.length; i++) {
			Matcher m=p.matcher(str[i]);
			if(m.find()){
				String[] element = str[i].split(">");
				if(element.length<2)
					break;
				String key = element[0].substring(1);
				String value = element[1].trim();
				String regEx2="[0-9]{4}-[0-9]{2}-[0-9]{2}"; 
				Pattern p2=Pattern.compile(regEx2);
				if(p2.matcher(value).matches()){
					String temp[] = value.split("-");
					value = temp[0]+temp[1]+temp[2];
				}
				content.put(key, value);
			}
		}
	}

	public String getTradeNo() {
		return tradeNo;
	}

	public int getHeadLength() {
		return headLength;
	}

	public Map getContent() {
		return content;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -