首页 > 解决方案 > 从字符串中挑选出正确的字符;

问题描述

我试图找出字符串中与另一个字符串匹配的部分之前和之后的字符,从而创建一个完全不同的字符串。即当方法wordEnds(String str, String word)被调用时,str = "XY1XY"and word = "XY",那么新的字符串就是"11".

这是我到目前为止所拥有的:

package codingBat;

 public class CodingBat {
  public static String wordEnds(String str, String 
   word) {
    String newStr = null;

      if(str.equals(word)) {
         return ""; 
      }
      else if(!str.contains(word)) {
          return "";
      }
      else {
          for(int i = 0;i < str.length();i++) {
              if((word.equals(str.substring(i,i+1)))){
               newStr = newStr + (str.substring(i-1,i+2));
              }
              else {
                 return newStr;
              }
          }
          return newStr;
      }
  }
}

标签: java

解决方案


尝试使用正则表达式,您的示例模式看起来像这样XY.*XY。但是您必须将 更改XY为字符串参数,这样它就可以了pattern = str+"(.*)"+str。然后你可以使用组并从中间读取字符串这是一个代码:

    static String middleString(String str, String word) {
        Pattern pattern = Pattern.compile(str + "(.*)" + str);
        Matcher matcher = pattern.matcher(word);
        matcher.matches();
        return matcher.group(1);
    }

这个电话:

System.out.println(middleString("XY", "XY11XY"));

退货11


推荐阅读