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