Java 基于终止符的消息拆分
我有一个示例消息文件。我必须将H到L | 1 | N的消息拆分为一条消息。这里把两条消息合并成一个文件。我想将每条消息放入字符串[]。 我怎么做 我试过这样的方法,但没有成功Java 基于终止符的消息拆分,java,Java,我有一个示例消息文件。我必须将H到L | 1 | N的消息拆分为一条消息。这里把两条消息合并成一个文件。我想将每条消息放入字符串[]。 我怎么做 我试过这样的方法,但没有成功 int beginIndex = eao.getBeginIndex(); int endIndex = MsgValidator.getTerminaterIndex(content) + 1; logger.info("beginIndex:: "+beginIndex); logger.info("endIndex
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
我找到了解决办法:
if (endIndex > beginIndex) {
String subContent = content.substring(beginIndex, endIndex - 1);
String[] messages = subContent.split("L\\|1\\|N");
logger.info("message :: " + messages.length);
}
也许只是用旧的简单工具(inputstream->bufferedreader->filereader)解析这个txt文件。然后按行解析txt,如果(第一个字符H |->开始消息),如果行等于L | 1N,则消息结束。。。或者如果你想使用你提到的东西(MsgValidator,eo),我认为需要更多的代码…我需要计算文件中有多少完整的消息?完整的消息意味着从H开始,到L | 1 | N结束