如何从涉及其他字符的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