【问题标题】: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)。我认为代码可能更难阅读,但它仍然可以完成工作。

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

    干杯,

    杰夫

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      相关资源
      最近更新 更多