?? package.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 + -