基于Terminator的消息拆分

时间:2013-07-21 10:03:52

标签: java

我有一个示例消息文件。我必须将消息从H拆分为L | 1 | N作为一条消息。这里有两条消息进入一个文件。我想将每条消息放入String []。 我该怎么办?

我尝试过这样的方法,但还没完成。

int beginIndex = eao.getBeginIndex();
int endIndex = MsgValidator.getTerminaterIndex(content) + 1;

logger.info("beginIndex:: "+beginIndex);
logger.info("endIndex:: "+endIndex);
if (endIndex > beginIndex) {
    String subContent = content.substring(beginIndex, endIndex-1);
    // need help
}

示例消息::

H|\^&|||Becton Dickinson|||||||| V1.00 |19981019184200
P|1||PatId123
O|1|Acc123||^^^MGIT_960_AST
R|1|^^^AST_MGIT^439400001234^P^0.5^ug/ml|
INST_COMPLETE^105^^S||||||||19981019153400|19981020145000|
MGIT960^^42^3^ B/A13
L|1|N
H|\^&|||Becton Dickinson|||||||| V1.00 |19981019184200
P|1||PatId123
O|1|Acc123||^^^MGIT_960_AST
R|1|^^^AST_MGIT^439400001234^P^0.5^ug/ml|
INST_COMPLETE^105^^S||||||||19981019153400|19981020145000|
MGIT960^^42^3^ B/A13

L|1|N

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

if (endIndex > beginIndex) {
    String subContent = content.substring(beginIndex, endIndex - 1);
    String[] messages = subContent.split("L\\|1\\|N");
    logger.info("message :: " + messages.length);
}