我有以下代码将以制表符分隔的字符串提取为字符串数组:
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有更好的方法吗?或者我必须自己实施一些东西?
这里有一些例子:
String ok = a \ tb \ tc \ td \ te String nok = a \ tb \ tc \ t \ te
拉尔夫
答案 0 :(得分:0)