在 Java 中用空白 space 拆分字符串时如何处理意外的空白 space

How to handle unexpected blank space when splitting String by blank space in Java

我正在逐行提取文件,每一行都有不同数量的 space 分隔字符串,如下所示。这是文件中的一行。代码按预期工作,除了这一行的情况,这里有一个意外的 space,就像在埃尔帕索这里:EL PASO*TX*K4。如果每行有固定数量的字符串但没有,我会为每个字符串使用定义的索引。有些行只有 7 个字符串,而其他行有多达 21 个字符串要摄取。有人知道如何最好地处理这种情况吗?

NAV3ELP VORTAC ALIBY*NM*K2 ANJIE*TX*K4 CINAG*TX*K4 EL PASO*TX*K4 FABAN*TX*K4 FANNY*TX*K4 FARCY*TX*K4 FEMOL*TX*K4 FIGMO*TX*K4 GIFEN*TX*K4 GREBE*NM*K2 HANCH*NM*K2 JIDEN*TX*K4 KEYLO*TX*K4 LINZY*TX*K4 NOCIG*TX*K4 NUQUH*TX*K4 PIERS*TX*K4 RIOWE*TX*K4 RISGE*TX*K4 RUTER*NM*K2

    public Nav3Data parseRecord(String dataLine) {
        // check record type
        if(!dataLine.startsWith("NAV3")) return null;

        Nav3Data theNav = new Nav3Data();
        // parse Navaid ID
        theNav.setNavaidID(dataLine.substring(NAVAID_ID_START_IDX, NAVAID_ID_END_IDX).trim());
        // parse fixes
        String[] fixes = dataLine.substring(FIX_IDS_START_IDX, FIX_IDS_END_IDX).split("\s+"); 
        theNav.setFixIDs(fixes);
        return theNav;
    }

拆分为 2 个或更多空格:

dataLine.substring(FIX_IDS_START_IDX, FIX_IDS_END_IDX).split("\s{2,}")

两种选择: a) 拆分为多个白色 space 字符 b) 如果部分之间的白色 space 已知且不变,则根据该值明确拆分。