Сравнение / цитирование строк Java - PullRequest
1 голос
/ 14 июля 2010

Моя проблема заключается в сравнении двух объектов и возвращаемых ими строк (доступ к которым осуществляется через геттеры).

Объект один анализирует CSV-файл для дат и при печати через exampleObject.getDateTime () возвращает строку: "2010-03-26-10-54-06.471000"

У объекта два есть строка dateTime, установленная пользователем. Когда я устанавливаю 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();
    }

edit выше - это код, который использовался для анализа файла csv. Я проверил, и файл CSV не содержит цитаты.

Спасибо за быстрый и полезный ответ!

Ответы [ 2 ]

1 голос
/ 14 июля 2010

Вам нужно изменить / настроить синтаксический анализатор CSV для удаления кавычек.

Если это доморощенный анализатор CSV, этого должно быть достаточно, чтобы избавиться от окружающих двойных кавычек:

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

Если это сторонний API, то вам нужно ознакомиться с его документацией (или указать здесь имя библиотеки, чтобы тот, кто готов это сделать, мог найти документацию для вас).

См. Также:

0 голосов
/ 14 июля 2010

проверьте еще раз, как вы выполняете синтаксический анализ CSV.

или удалить цитаты из строки:

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