Java字符串比较/引用

时间:2010-07-14 17:10:26

标签: java csv string comparison object

我的问题是两个对象的比较以及它们返回的字符串(通过getter访问)。

对象1解析csv文件的日期,当通过exampleObject.getDateTime()打印出来时,返回字符串:“2010-03-26-10-54-06.471000”

对象2的dateTime字符串由用户设置。当我将对象2上的dateTime设置为与objectOne相同然后执行exampleObjectTwo.getDateTime()时,它返回2010-03-26-10-54-06.471000

所以主要区别在于一个字符串在解析csv(不包含引号)时引用了引用,而在返回时没有引用的用户设置字符串!

如果有人能解释为什么会发生这种情况,我将非常感激!

非常感谢!


        BufferedReader input = new BufferedReader(new FileReader(file));

        try {
            String line = null; 
            while ((line = input.readLine()) != null) {
                SearchResult searchResult = new SearchResult();

                if (!line.contains("Date")) {
                    String[] split = line.split(",");
                    SearchResult.setDateTime(split[0]);
                    SearchResults.add(SearchResult);
                }

            }
        } finally {
            input.close();
        }
    } catch (IOException ex) {
        ex.printStackTrace();
    }
上面的

编辑是用于解析csv文件的代码。我检查过,csv文件中没有任何引号。

感谢您快速而有帮助的回复!

2 个答案:

答案 0 :(得分:1)

您需要修改/配置CSV解析器以删除引号。

如果它是一个本土的CSV解析器,那么这样做就足以摆脱周围的双引号:

field = field.replaceAll("^\"|\"$", "");

如果它是第三方API,那么您需要查阅其文档(或在此提及库名称,以便愿意这样做的人可以为您查找文档)。

另见:

答案 1 :(得分:0)

再次检查你如何执行csv解析。

或从字符串中删除引文:

String newDate  = oldString.replaceAll("\""," ").trim();