import java.util.ArrayList;
import java.util.StringTokenizer;
public class test {
public static void main(String args[]) {
ArrayList<String> data = new ArrayList<String>();
String s = "a,b,c,d,e,f,g";
StringTokenizer st = new StringTokenizer(s,",");
while(st.hasMoreTokens()){
data.add(st.nextToken());
}
System.out.println(data);
}
}
在CSV数据中查找空元素时出现问题 上述代码在数据完成时运行良好。如果缺少某些数据,则无法检测到空数据。
例如: 完成数据:a,b,c,d,e,f,g
如果删除a,d,e,g
新数据:,b,c ,,, f,
4个数据丢失!!
我需要一种方法将这些数据放入ArrayList中,空数据为空值或“”值
答案 0 :(得分:0)
我确信有更优雅的解决方案,但一个简单的解决方案就是使用split()功能:
public static void main(String args[]) {
ArrayList<String> data = new ArrayList<String>();
String s = ",b,c,,,f,";
//create an array of strings, using "," as a delimiter
//if there is no letter between commas, an empty string will be
//placed in strings[] instead
String[] strings = s.split(",", -1);
for (String ss : strings) {
data.add(ss);
}
System.out.println(data);
}
答案 1 :(得分:0)
您可以使用Guava Splitter执行此操作:
import com.google.common.base.Splitter;
public class Example
{
private static final Splitter SPLITTER = Splitter.on(",").trimResults();
public List<String> split(String singleLine) {
return SPLITTER.split(singleLine);
}
}