从双精度转换为string,但保持前导零

我正试图从双重转换为string。 它正在工作,但它正在删除所有前导零。 例如,00010000正在更改为10000和01更改为1.我正在尝试读取一个xls文件,它certificate是困难的。

运行程序时数字的数量是不知道的,所以我想不出解决这个问题的办法。 谁能帮忙?

以下是我的代码:

while (cells.hasNext()) { cell = (HSSFCell) cells.next(); if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) { lineList.add(cell.getStringCellValue()); } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) { String s = String.valueOf(cell.getNumericCellValue()); lineList.add(s); } } 

我猜这是什么在这里发生的是,你有Excel中的数字数据格式为00010000 。 但是,在Excel内部,这些数据可能只是存储为1000010000.0等,并且由于格式化,前导零才会出现。 当你使用HSSF将这个数字数据导入到Java中时,它也以1000010000.0等等的10000.0 。正如其他人已经提到的那样,在Java double原始types中没有“前导”零。 所以,当你转换成一个String ,当然没有前导零,因为他们根本不存在。

可能的解决方法:

如果您将Excel数字列设置为文本格式,然后导入它,则以下if条件应激发这些值:

 if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) { lineList.add(cell.getStringCellValue()); } 

然后您可以直接读取文本值,引导零和全部,并保留Excel电子表格中的信息。

我没有testing过这个,但是如果我面对你的问题,这可能是我会尝试的。