是否可以制作类似于此
的CSV阅读器while((line = reader.readLine()) != null){
String[] values = line.split(",");
for(String s : values) {
data.add(s);
}
但不是仅仅使用逗号,每行都有不同的分割,例如:
value/value;value=value
而不仅仅是 值,值,值,值
答案 0 :(得分:2)
String#split
采用正则表达式而不仅仅是String作为参数,因此您可以使用;|/|=|,
这样的表达式进行拆分。
答案 1 :(得分:1)
当然,您可以为模糊处理的csv 实现一个阅读器,但文件格式不再是CSV,并且您将遇到更多问题来识别一组分隔符(它们不能是一部分的价值观。)
最简单的方法:编写一个编码器,将合法的CSV转换为您自己的数据格式,并将转换的解码器转换回合法的CSV。
BTW - 您仍然可以使用单个拆分命令进行解码:
String[] values = line.split("[/;=]");
split
将正则表达式作为参数。
答案 2 :(得分:1)
Split接受regexp作为String
参数。例如,这将拆分您在示例中使用的任何一个字符。
line.split("[/;=]")
答案 3 :(得分:1)
也可以使用regular expression调用String的split方法。在您的情况下,固定的代码行将是:
String[] values = line.split("[,/;=]"); // specific chars you want to look for
或
String[] values = line.split("[^0-9]"); // everything except digits