如何从涉及其他字符的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
- 对于庞大的数据,Grails Excel导入失败
- java – Apache POI SXSSFWorkbook无法创build工作表
- 在使用LibreOffice Calc打开文件时,使用apache poi在java中的行3000到3005中写入图像
- 颜色a指定字母和单词
- 如何通过Java POI API从Excel表中删除所有公式?
- 如何使用POI将巨大的.csv文件转换为excel
- 无法将sheetname与string值进行比较
- 错误:types不匹配:无法从HSSFWorkbook转换为工作簿
- getRichStringCellValue()。getString()和getRichStringCellValue()。toString()之间的区别是什么?