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

时间:2015-10-12 12:22:15

标签: string substring trim parseint

我尝试获取一个整数(在&#34之后;播放:STATION \ nID:"在我的屏幕截图中显示的字符串中使用以下代码:

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

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

Screenshot of the complete String

1 个答案:

答案 0 :(得分:1)

由于您必须在多个条目中选择一个特定的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);
}

正确解析紧跟在ID之后的PLAYING_STATION个数字。

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

我希望这会有所帮助......

干杯,

杰夫