【发布时间】:2020-06-17 04:05:14
【问题描述】:
我正在逐行提取文件,每一行都有不同数量的空格分隔字符串,如下所示。这是文件中的单行。代码按预期工作,除了这一行存在意外空间的情况,如埃尔帕索: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;
}
【问题讨论】:
标签: java string substring whitespace delimiter