我尝试获取一个整数(在&#34之后;播放:STATION \ nID:"在我的屏幕截图中显示的字符串中使用以下代码:
int zahl = Integer.parseInt(sentence.substring(sentence.indexOf("PLAYING:STATION\n
ID:")+1).trim());
但我得到的只是一个NumberFormatException。如何告诉trim() - 方法必须在数字后停止?
答案 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
)。我认为代码可能更难阅读,但它仍然可以完成这项工作。
我希望这会有所帮助......
干杯,
杰夫