如何从涉及其他字符的string中获取int?
我正在编写一个程序,我想用一个如下所示的ID在文档中迭代某些属性:
"id": "competitor:2672"
我想基于从Excel文件中读取的数据进行迭代。 唯一的问题是,在所述的excel文件中,ID只是作为
2672
在“竞争对手ID”栏中。
我无法将给定的stringparsing为整数。 什么是最好和最干净的方式来比较这两个ID
使用Apache POI我想要做这样的事情
String COLUMN_ID = "G" // Column letter in which the IDs are stored Document home = competitors.get(0); Document away = competitors.get(1); String homeIDString = home.get("id").toString(); int homeID = //how to get this from the upper string? String awayIDString = away.get("id").toString(); int awayID = //how to get this from the upper string? XSSFWorkbook workbook = new XSSFWorkbook(inputStream); XSSFSheet sheet = workbook.getSheetAt(0); for (int row=0; <something>; row++) { XSSFCell cell = sheet.getRow(row).getCell(CellReference.convertColStringToIndex(COLUMN_ID)); if (cell.getCellTypeEnum().equals(NUMERIC)) int cellValue = (int) cell.getNumericValue(); if (cellValue == homeID) { do something } else if (cellValue == awayID) { do something } }
你现在正在得到一个NumberFormatException
因为你NumberFormatException
你的String
转换成一个int
然后再和另一个int
进行比较。
什么@azurefrog说的是,你可以尝试,而不是把你的int
转换成一个String
(反过来),它会没事的。
strVariable.endsWith(String.valueOf(intVariable))
然而,这有一个问题, "id": "competitor:2672"
和72
也将返回true
。
更好的方法是删除competitor:
在将2672
转换为int之前使用子string
String myInput = "competitor:2672"; // "competitor:2672" myInput = myInput.substring(11); // "2672" int myValue = Integer.parseInt(myInput); // 2672
- 我需要在使用POI的指定列上写excel的pass失败
- autoSizeColumn()失败的XSSFSheet
- NoClassDefFoundError:UnsupportedFileFormatException使用java工作与Excel表
- Apache POI条件格式 – getNumConditionalFormattings总是返回0
- 使用Java将数据dynamic插入到Excel中
- 如何使用java在Excel中的多个单元格中写入数据?
- 如何检索与Excel中显示的结果相同的单元格值?
- Java Servlet:无法创buildExcel文件
- 阅读使用Excel工作表的链接表的Access数据库