0
我有下面的代碼,其提取製表符分隔的字符串爲一個字符串數組:爪哇:StringTokenizer的不尊重隔板
static public List<String> getContents(File aFile, String separator){
// all strings, split based on separator
List<String> contentList = new ArrayList<String>();
StringTokenizer tokenizer = new StringTokenizer(Util.getContents(aFile), separator);
while (tokenizer.hasMoreTokens()){
contentList.add(tokenizer.nextToken());
}
return contentList;
}
在這種情況下,分離器因此是「\ t」的。
只要兩個字符串由一個選項卡分隔,一切都很好。但是,我的數據集有時有兩個由兩個製表符分隔的字符串。這意味着缺少一個參數,並將一個emptry字符串添加到列表中。然而,該方法忽略了這一點,只是返回一個數組少一個字符串。
在我的特殊情況下,我總是想要返回5個字符串的數組。這意味着,僅包含4個沒有文本的選項卡的文本將返回一個由5個空字符串組成的數組(基於此的解析作業需要)。不幸的是,我無法控制內容,我正在處理數百萬個無法控制的文件。
有沒有更好的方法來做到這一點與StringTokenizer?還是我必須自己實施一些東西?
這裏的一些例子:
字符串OK =一個\ TB \ TC \ TD \ TE 字符串NOK =一個\ TB \ TC \噸\ TE
拉爾夫