如何从带有部分的字符串中获取整数

How can I get an integer out of a String with sections

我尝试使用以下代码从屏幕截图中显示的字符串 "PLAYING:STATION\nID:" 之后获取一个整数:

 int zahl = Integer.parseInt(sentence.substring(sentence.indexOf("PLAYING:STATION\n
ID:")+1).trim());

但我得到的只是一个 NumberFormatException。我如何告诉 trim()-方法它必须在数字之后立即停止?

Screenshot of the complete String

由于您必须 select 多个条目中的一个特定 ID: 条目,我认为最好的处理方法是使用正则表达式。使用您的输出示例,我编写了以下代码:

String text = "PLAYING_MODE\nID:\nPLAYING:STATION\nID:2\nNAME:wazee.org";
Pattern p = Pattern.compile("PLAYING:STATION\nID:(\d+)");
Matcher m = p.matcher(text);
if (m.find()) {
  int number = Integer.parseInt(m.group(1));
  System.out.println(number);
}

正确解析紧跟在 PLAYING_STATION.

之后的 ID 数字

您也可以重复使用重载的 String.indexOf() 方法(找到 PLAYING:STATION,然后是下面的 ID:,然后是下面的 \n)。我认为代码可能更难阅读,但它仍然可以完成工作。

希望对您有所帮助...

干杯,

杰夫