混淆CSV

时间:2012-02-14 13:16:06

标签: java obfuscation inputstream bufferedreader

是否可以制作类似于此

的CSV阅读器
while((line = reader.readLine()) != null){
            String[] values = line.split(",");
            for(String s : values) {
                data.add(s);
}

但不是仅仅使用逗号,每行都有不同的分割,例如:

value/value;value=value

而不仅仅是     值,值,值,值

4 个答案:

答案 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