SAMPLE DATA
ABC MP XP
2RMM2,NS-0 0 0
5RMM2,NS-0 0 0
12RMM2,NS-0 0 0
RXT-1 7
END
这是示例日志文件内容。我想为ABC Column下的所有值获取MP,XP参数值。有时MP / XP的值可能不存在。但是我想用默认值替换它,如果不是。 尝试使用StringTokenizer以及split方法,但在RXT-1行中,无法识别该值是用于MP还是XP 如何解析此文件,从而为每行保留MP / XP的正确参数值?
答案 0 :(得分:0)
似乎是固定长度的记录。大概有6个职位。
List<String> lines = Files.readAllLines(Paths.get("..."));
lines.stream()
.skip(3)
.forEach(line -> {
// 10 20
// 01234567890123456789012345678
// ABC MP XP
// 12RMM2,NS-0 0 0
String abc = line.replace("^(.*)\\s.*$", "$1");
String mpS = line.substring(abc.length() + 1, 22).trim();
String xpS = line.substring(22).trim();
int mp = mpS.isEmpty() ? -1 : Integer.parseInt(mp);
int xp = xpS.isEmpty() ? -1 : Integer.parseInt(xp);
...
});
);