Java 字符串比较/引用

标签 java csv string comparison object

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

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

对象二的日期时间字符串由用户设置。当我将对象二上的日期时间设置为与 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();
    }
上面的

edit 是用于解析 csv 文件的代码。我检查了一下,csv 文件不包含任何引号。

感谢您快速而有用的回复!

最佳答案

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

如果它是一个自制的 CSV 解析器,这样做应该足以摆脱周围的双引号:

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

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

另请参阅:

关于Java 字符串比较/引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3248643/

相关文章:

Javassist 捕获特定语句的局部变量值

java - 创建另一个进程的 HWND 的子窗口? (例如屏保预览)

java - Mahout 随机森林分类器示例 ArrayIndexOutOfBoundsException

python csv阅读器忽略空白行

c++ - 字符串的哈希函数不适用于某些字符串?

java - 有没有办法测试方法处理并发调用的能力?

python - 使用Python删除不包含正则表达式匹配的单元格/行

Python Pandas - 从 csv 文件创建时间序列

java - StringIndexOutOfRangeException

python - 如何比较 Tensorflow 中的两个字符串?