Java: чтение числового значения из поля в виде строки с десятичными знаками - PullRequest
0 голосов
/ 24 мая 2018

У меня есть поле во входном файле xlsx, которое может содержать либо адрес электронной почты, либо номер мобильного телефона.При чтении у меня следующая логика -

Workbook workbook = WorkbookFactory.create(new File("./TXN_Log_Mar_18_input.xlsx"));
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.rowIterator();
while (rowIterator.hasNext() && cnt <maxRows) {
    System.out.println("\n\nNew row "+cnt+" ");
    Row row = rowIterator.next();
    if(row.getCell(11).toString() !="" || row.getCell(12).toString() !="")
    {

        String debitUser = row.getCell(11).toString();
        System.out.println("input mobile? "+debitUser);
        if(emailFormat(debitUser) || mobileFormat(debitUser))
        {
            response  = umCall(debitUser);
        }   

    }
}

При правильном 10-значном мобильном номере следующий вывод -

input mobile? 7.358681129E9

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Я предполагаю, что вы используете Apache POI, поэтому я рекомендую вам не использовать метод toString ().Вместо этого используйте методы getCellValue ().

Если вы знаете тип значения, содержащегося в вашей ячейке, вы можете использовать определенный метод, например getNumericCellValue (), который возвращает значение типа double.Затем вы можете отформатировать данные по своему усмотрению.

double cellValue = row.getCell(11).getNumericCellValue();
System.out.println("input mobile? " + (int) cellValue);

Возможно, что-то подобное.

См. Документацию Cell, чтобы найти лучший способ сделать это.

https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html

Также я рекомендую вам проверить тип вашей ячейки перед обработкой данных.

0 голосов
/ 25 мая 2018

Я не вижу тип, возвращаемый getCell (), но я предполагаю, что это BigDecimal или что-то очень похожее.BigDecimal имеет toPlainString (), который предотвращает форматирование больших чисел с использованием экспоненциальной записи.Независимо от того, какой тип возвращен, посмотрите на его методы для чего-то похожего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...