【问题标题】:Java: How to RegEx or Substring Utils this String?Java:如何使用此字符串进行正则表达式或子字符串?
【发布时间】:2011-09-23 04:02:36
【问题描述】:
"Current Peak :   830           300"

我怎样才能得到这两个数字,但没有空格。 (每个子串之间有5个或更多空格)

到目前为止,我使用 apache 的 StringUtils:

String workUnit =
StringUtils.substringAfter(thaString,
":");

这会回馈:

"830           300"

但仍然有很多空格并且没有分隔。

【问题讨论】:

    标签: java regex string substring string-utils


    【解决方案1】:

    你可以这样做:

    Pattern patt = Pattern.compile("Current Peak :\\s*(\\d*)\\s*(\\d*)");
    Matcher matcher = patt.matcher("Current Peak :   830           300");
    if (matcher.find()) {
        String first  = matcher.group(1); // 830
        String second = matcher.group(2); // 300
        // ...
    }
    

    【讨论】:

      【解决方案2】:
      String[] workUnits = StringUtils.substringAfter(thaString,":").split("\\s+");
      

      【讨论】:

        【解决方案3】:

        或者只使用核心java:

            String input = "Current Peak :   830           300";
            String[] parts = input.split("\\s+"); // Split on any number of whitespace
            String num1 = parts[3]; // "830"
            String num2 = parts[4]; // "300"
        

        【讨论】:

          【解决方案4】:

          未经测试,但这应该会给你两个数字:

          String[] workUnits = StringUtils.split(StringUtils.substringAfter(thaString, ":"));
          

          【讨论】:

          • 完美! System.out.println(workUnits[i]);回馈。价值观。我喜欢你的第一个解决方案(编辑掉)没有 apache 的库,String [] temp = myArray[3].split(" ");然而 System.out.println(temp[temp.length-1]);只给了最后一个数字..
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-12-20
          • 2012-01-02
          • 2011-12-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多