Я пытаюсь прочитать штрих-код из CSV-файла.Любопытно, что когда я открываю файл в IntelliJ, он показывает штрих-код полностью.Когда я пытаюсь прочитать CSV-файл, штрих-код преобразуется в число в научной записи.
Наиболее распространенным решением, которое я нашел в Интернете, было преобразование строки в двойное число с использованием Double.parseDouble (string).Но это вызывает исключение:
java.lang.NumberFormatException: For input string: "5,40014E+12"
Фактический метод:
public String getField(String barcode) {
String field = null;
try {
String line;
br = new BufferedReader(new FileReader(csvFile));
br.readLine();
while ((line = br.readLine()) != null) {
String[] barcodeData = line.split(delimiter);
System.out.println(Double.parseDouble(barcodeData[2]));
if (barcodeData[2].equals(barcode)) {
field = barcodeData[67];
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return field;
}
Этот метод используется в тесте, в котором есть жестко запрограммированный ожидаемый результат.Но field всегда возвращает null в этом случае, так как предложение if здесь никогда не вернет true.Фактическое исключение выдается в System.out.println, где я проверяю, как число читается из CSV.
Штрих-код должен быть: 5400141331875
Что на самом деле читается из файла CSV: 5,40014E + 12
Как запретить Java преобразовывать штрих-код в научную нотацию?
РЕДАКТИРОВАТЬ
Я нашел"решение".Если я не открою фактический файл CSV, числа не преобразованы в научную запись.Для меня это реальное решение, я надеюсь, что тот, у кого в будущем возникнет та же проблема, что и я, найдет реальный ответ, почему мои штрих-коды не удалось преобразовать из строки в двойную / длинную строку.Спасибо всем за помощь.