【问题标题】:How can I get an integer out of a String with sections如何从带有部分的字符串中获取整数
【发布时间】:2016-01-09 22:15:17
【问题描述】:
我尝试使用以下代码从屏幕截图中显示的字符串中获取一个整数(紧跟在“PLAYING:STATION\nID:”之后:
int zahl = Integer.parseInt(sentence.substring(sentence.indexOf("PLAYING:STATION\n
ID:")+1).trim());
但我得到的只是一个 NumberFormatException。如何告诉 trim() 方法它必须在数字之后立即停止?
Screenshot of the complete String
【问题讨论】:
标签:
string
substring
trim
parseint
【解决方案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);
}
正确解析紧跟在PLAYING_STATION 之后的ID 数字。
您也可以重复使用重载的String.indexOf() 方法(找到PLAYING:STATION,然后是下面的ID:,然后是下面的\n)。我认为代码可能更难阅读,但它仍然可以完成工作。
我希望这会有所帮助...
干杯,
杰夫